V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
soli
V2EX  ›  iDev

XCode 8 的 Sotryboard 是不是基本用不了了?

  •  
  •   soli ·
    solicomo · 2016-10-17 11:03:34 +08:00 · 5699 次点击
    这是一个创建于 2961 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果小心翼翼的用还看不出啥来。

    一个手抖,整个 View 就全乱了, Ctrl-z 也不好使了, Update Frames 也不管用了。

    最最可气的是,好像经常死循环, CPU 100%,看属性视图里某些 View 的长度或高度无限增长。

    昨天斗争了一天,连个简单的三栏界面都没画出来,无数次手抖从头再来,无数次强制退出 XCode 。

    另,请教一下,怎么判断什么时候应该分 Sotryboard 了?

    +------------+-----------------------+-----------+
    | - xx       |                       |           |
    |   + yy     |                       |           |
    |   + zz     |                       |           |
    | + aa       +-----------------------+           |
    | + bb       |                       |           |
    |            +-----------------------+           |
    |            |                       |           |
    |            |                       |           |
    +------------+-----------------------+-----------+
    
    第 1 条附言  ·  2016-10-17 13:50:53 +08:00
    补充一下,这个是 macOS 的项目。
    第 2 条附言  ·  2016-10-18 10:54:43 +08:00
    标题中的 Storyboard 写错了。。。
    第 3 条附言  ·  2016-10-23 23:17:29 +08:00
    可能是 box 控件惹的祸。
    把 box 全删了之后清爽很多。

    另外,貌似死循环的问题可能是 StackView 里放 TableView 的时候会出现。
    具体怎么触发的就不知道了。
    36 条回复    2016-10-20 10:23:53 +08:00
    kera0a
        1
    kera0a  
       2016-10-17 11:07:28 +08:00   ❤️ 2
    这玩意真是不好用,早点放弃吧
    如果有像 VS 一样的支持能力还好,
    Xcode 就是个残次品。
    用过最烂的 IDE ,没有之一
    nagato
        2
    nagato  
       2016-10-17 11:11:34 +08:00
    @kera0a
    @soli
    确定是不好用,不是不会用?
    plqws
        3
    plqws  
       2016-10-17 11:12:00 +08:00 via iPhone   ❤️ 1
    最近写了个基于 swift3 的 ui 创建帮助类,可以完全摆脱辣鸡 storyboard ,抽时间开源出来
    soli
        4
    soli  
    OP
       2016-10-17 11:14:41 +08:00
    @nagato 请教,怎么避免上面说的那些问题。快疯了。。。
    kera0a
        5
    kera0a  
       2016-10-17 11:15:52 +08:00   ❤️ 3
    @nagato 我说屎难吃还要我证明不是屎难吃而是我不会吃? 你会吃你吃好了~
    IamJ
        6
    IamJ  
       2016-10-17 11:17:37 +08:00
    现在自己的项目里完全用代码写 UI 了
    soli
        7
    soli  
    OP
       2016-10-17 11:17:50 +08:00
    @plqws 期待。到时候学习一下。
    JohnHow
        8
    JohnHow  
       2016-10-17 11:32:21 +08:00
    beat 版的时候出现这个问题,sb 基本打不开,正式版的没有这个问题了,还蛮好用的
    NovemberEleven
        9
    NovemberEleven  
       2016-10-17 11:37:34 +08:00
    每次打开都要 update 一次 view
    mofet
        10
    mofet  
       2016-10-17 11:38:33 +08:00
    我估计你这个问题是 Xcode 8 大改了 IB ,如果文件是旧版本升级过来的估计还有 bug 。

    Storyboard 可以很好用。我上一个项目就试过完全使用 Storyboard 构建 UI , Autolayout 和 Size classes 太爽了,把 iPad 和 iPhone 的两套 UI 集成在一个文件里问题不大, UISplitViewController 已经很好了虽然还有改进空间。重点是要规范, IB 也是代码,对人员素质要求很高。我团队里负责 Storyboard 的基本都具备人工改 Storyboard 和写 SnapKit 不报错的能力,而有些新手连 xcode 提示自己少了哪些 constraints 都看不懂,肯定不适合。

    尽可能多的拆分 Storyboard ,不同的人负责的 UI 肯定要分模块拆分,公用的 UI 独立出来,只有确定这几个 Controller 属于逻辑绑定的功能才放在一起。模块内用 Segue 连接 Controller 其实是很爽的事。
    hstdt
        11
    hstdt  
       2016-10-17 12:22:15 +08:00 via iPhone
    算是苹果主推的开发方式吧,官方很多 domo 都是用 sb 写的。个人觉得还是很好用的。
    nagato
        12
    nagato  
       2016-10-17 12:29:45 +08:00
    @kera0a 你是吃什么都像屎吧?把饭当屎吃,你这日子过的有点艰难的
    yoa1q7y
        13
    yoa1q7y  
       2016-10-17 12:47:16 +08:00
    说不好用的基本是不会用或者自己没用过吧
    先去学习了试用了再说
    Storyboard 是官方推荐的 UI 构建方案,有很多不错的特性
    不要人云亦云
    kingcos
        14
    kingcos  
       2016-10-17 13:29:11 +08:00
    最受不了的是 Cmd+/ 不能注释。。。
    8 8.1 beta 都不行= =
    soli
        15
    soli  
    OP
       2016-10-17 13:43:49 +08:00
    @mofet 项目是 XCode 8 新开的,没有旧代码。

    我也是用的 UISplitViewController 。

    XCode 是提示少了一些 constraints ,但是那是我正在修改过程中哈,
    还没修改完当然会少 constraints 。这时候就 100% CPU ,我就没机会添加缺少的 constraints 了。

    已经把自动更新 View 取消了。
    kera0a
        16
    kera0a  
       2016-10-17 13:44:25 +08:00
    @yoa1q7y
    优点当然有,如果优点实在太适合你项目了,例如我一个项目要适配所有 iOS 设备,它确实是个好选择,也没得选了。

    但我说的是不好用,加上 Xcode 支持上半残,这玩意能算好用? 这么好用楼主发帖干什么


    @nagato 互 block 吧~ 真是疯狗到处咬
    soli
        17
    soli  
    OP
       2016-10-17 13:50:37 +08:00
    @yoa1q7y 缺少有很多好的特性。

    但怎么解决或者避免上面提到的问题呢?

    XCode 7 的时候好像没有遇到过这些问题。

    呃,好像是忘了说了,这个是 macOS 的项目,不是 iOS 的。

    iOS 的好像也没遇到这个问题,也可能是最近没怎么开发 iOS 的项目。
    soli
        18
    soli  
    OP
       2016-10-17 13:52:45 +08:00
    @soli 错。应该是 NSSplitViewController
    kitalphaj
        19
    kitalphaj  
       2016-10-17 13:53:34 +08:00   ❤️ 1
    不管楼上的多牛逼, Xcode 不好用已经是公认的了。你们试试用 Xcode 写 Swift ,你看看 Sourcekit 会不会崩。而且 Swift 还不支持重构。自动补全经常弹不出来。 Storyboard 经常打开就卡住,用个 IBDesignable 马上开始自动编译,不停编译停不下来,风扇呼呼呼的转。最近还有个新问题,有小数点的 width 会导致 Console 不停的打印导致 Xcode 卡死。对对对,楼上的都牛逼,这些问题都觉得可以自己解决。
    soli
        20
    soli  
    OP
       2016-10-17 13:54:21 +08:00
    @mofet 应该是 NSSplitViewController 。


    @yoa1q7y 『缺少有很多好的特性。』 => 『确实有很多好的特性。』
    cookiezby
        21
    cookiezby  
       2016-10-17 14:44:16 +08:00
    @mofet sb 的 autolayout 一般用在静态布局吗?一直用 Masonry 或者 snapkit 手写 view 的布局,有时候要改动布局的话就直接代码改完之后 update layout 了。
    nagato
        22
    nagato  
       2016-10-17 14:55:25 +08:00
    @kera0a 屌人妈的自己说自己吃屎还要怪我疯~ 醉了醉了
    mofet
        23
    mofet  
       2016-10-17 15:13:29 +08:00   ❤️ 1
    @cookiezby constraint 也是可以 IBOutlet 的,改属性就能更新布局了。我那个项目切换横竖屏时的变化大多都是这样做的,连几个动画都是用这种方式做的,代码量很小,因为都堆在 Storyboard 里了……这只适合 UI 布局改变不大的情况。整个界面推倒重来的刷新会很麻烦,所以有几个页面还是引入了 Snapkit 。
    我碰到的问题是要支持阿拉伯和乌尔都语,从右往左语言只有原生的 Autolayout 方案效果好,用 Masonry 就会 bug 满天飞,而且 iOS789 表现各不相同。
    grayon
        24
    grayon  
       2016-10-17 15:40:10 +08:00
    一直用的挺好的,没遇到什么问题
    终于解决了 7.3 的自动提示问题
    plqws
        25
    plqws  
       2016-10-17 15:43:25 +08:00   ❤️ 3
    楼上某些人说得对,都是我们不会用 Xcode 。
    我们不能在写复杂闭包的时候代码高亮服务爆炸的时候能够用黑白代码编辑器继续写代码,是我们的错,我们没有脑补代码高亮的能力。
    我们不能在错误提示消失或者是自动补全失效的时候能坚持下去不重启 Xcode ,是我们的错,是我们没有肉眼查错能力。
    我们不能在 Swift2 升级 Swift3 的时候能够作为先知提前写出能够无缝转换的旧版本 Swift 代码与类库,是我们的错,是我们 Swift 的修行还不到位。
    我们不能在 Storyboard 各种莫名其妙卡死的情况下还能坚持地用下去,是我们的错,是我们对 Xcode 以及苹果产品的信仰不足,是时候充值一波了。
    sillyBoy
        26
    sillyBoy  
       2016-10-17 15:57:55 +08:00
    这都能撕起来
    xjbeta
        27
    xjbeta  
       2016-10-17 16:52:07 +08:00
    macOS 的 sb 是真的 sb Xcode8 还移除了缩放 cocoa binding 日常 bug 其他么也就那样吧
    @kingcos com q 重开 试试 我这里有时候注释会失效 原因不明。。。

    三栏一个 splitview 拖三个 item 没这么难吧。。。(虽说你要把细节全做出来 就有的搞了)

    顺带 少撕逼 多 block
    akring
        28
    akring  
       2016-10-17 17:38:43 +08:00
    闪退什么的会遇到,楼主说的情况那还真没有
    kingcos
        29
    kingcos  
       2016-10-17 20:37:50 +08:00
    @xjbeta 试过。。。没用= =重启也没用。。。试过在终端输入某个命令再重启,还是没用。。。
    sherlocktheplant
        30
    sherlocktheplant  
       2016-10-17 20:56:58 +08:00
    安卓开发表示不能理解你们的烦恼
    Vancion
        31
    Vancion  
       2016-10-17 21:52:35 +08:00
    @kingcos
    sudo /usr/libexec/xpccachectl 然后重启。如果同时装了 beta 版要先运行一下正式版(如果你想恢复正式版的)
    http://stackoverflow.com/questions/38712365/xcode-8-beta-4-comment-shortcut-disabled
    yangxiongguo
        32
    yangxiongguo  
       2016-10-17 22:13:10 +08:00
    xcode 太烂是我不继续学 iOS 的第二原因
    free9fw
        33
    free9fw  
       2016-10-17 22:13:18 +08:00
    楼主 SB 写错了,应该是 storyboard
    fish420
        34
    fish420  
       2016-10-18 10:53:26 +08:00 via iPhone
    xcode 确实 bug 很多,稳定性比 vs 差很多。频繁升级,难免不出现问题
    soli
        35
    soli  
    OP
       2016-10-18 10:53:59 +08:00
    @xjbeta 是哈,我也觉得三栏布局没啥复杂的哈,所以 SB 应该能很流畅的处理才对,毕竟还没拖几个控件上去呢。


    @free9fw 不好意思。确实写错了。。。
    zenghaojim33
        36
    zenghaojim33  
       2016-10-20 10:23:53 +08:00
    storyboard 缺点是对旧版本的文件支持不是特别好,但是如果是新建的项目的话应该是比以前好用的,速度快了非常多(至于崩溃似乎是 xcode 自身的问题不是 storyboard 的问题吧)。觉得不好用可以不用,但是从我的感觉来说就算 storyboard 再怎么难用综合起来的效率还是比纯代码略快。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:02 · PVG 13:02 · LAX 21:02 · JFK 00:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.