打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
你使用 Autolayout 是使用 Storyboard 设置约束,还是使用代码写约束?
1

Storyboard和Xib用了一段时间,产生了很多困惑和问题,最终在公司现在的项目上放弃了。这里列举3个,希望IB达人指正。

  • 多个storyboard和xib里的字体、控件背景如何统一控制。 比如标题都是14,颜色为0X999999这样,用代码设置一个global config之类的地方读取即可,用IB不知道要怎么做。
  • storyboard中的viewController的重用问题。
    storyboard中似乎是无法直接制作view的,而必须要放入viewController中,以体现storyboard“scene”的意义,这不难理解。但在storyboard里做了一个容器viewController A(比如说,一个类网易新闻的横向标签条和一个scrollView的组合),想要作为基类来使用,同一个storyboard里使用A的派生类B,B中所有的控件都没有初始化,似乎是storyboard并不认可这样使用,让人有些困扰。
  • xib写就的view的重用问题。
    在storyboard中的某个viewController或者一个xib文件中拖入另一个xib文件写就的view
    A,在初始化完成后,发现A中所有的outlet都为nil,似乎根本没有去加载对应的xib。要正常使用,目前我只能通过代码来加载。这一点是我最终放弃的主要原因,即使有办法能够做到,但如此符合直觉的做法却是无效的,仍然让人有些上火。

以上。

补充一下,刚好在大屏iPhone出来的时候加入了现在的公司,从头拉起一个项目,直接用iOS8.1的SDK,在autolayout上真是吃了不少苦头。我觉得不论用IB还是用代码,autolayout本身的使用最终都不会有多大问题,真正的坑其实是autolayout的兼容性问题。我遇到了不少在iOS8下正常工作,但在iOS7下crash或卡viewDidLayoutSubviews无限循环的bug,绕过去花了大量时间。相比同时间android组的开发速度。。。。。有时候是会有点转行的冲动的。。

再补充一下,autolayout的debug在刚开始的时候是非常痛苦的,基本只能根据console里的一大排错误信息慢慢做排除法。用纯代码写约束的一个巨大好处是,暂时地移除部分约束(注释即可),或添加测试约束(用Debug_constraint_only之类的宏控制即可)非常容易,而在IB里做则非常痛苦。一是要反复地进出各个view层级来install/uninstall,二是面对复杂的UI,很容易就恍惚了刚刚改了什么(也可能是我脑残片忘了吃了)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于代码手写UI,xib和StoryBoard
Interface Builder一些使用技巧
iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
iOS开发 - 深入理解控制器与类
IOS学习笔记32
Storyboard的爱与恨
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服