为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2019-04-16 20:26:25
写布局规则写到吐了,但是对Storyboard来设置约束总感觉没安全感,而且很多约束不知道该怎么在界面上描述你现在项目中是使用Storyboard来设置约束的还是代码?有没有好的Storyboard来设置约束的教程推荐?
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

先说个人看法:具体情况具体分析,该用什么用什么。脱离具体使用场景的讨论都是耍流氓。
AutoLayout可以解决你很多约束需求,你有什么需求是AutoLayout实现不了的可以通过代码调整,不过情况很少的。。。举个例子看看?
12-05更新
回应一下@NSFish的回答。
多个storyboard和xib里的字体、控件背景如何统一控制。比如标题都是14,颜色为0X999999这样,用代码设置一个globalconfig之类的地方读取即可,用IB不知道要怎么做。
storyboard中的viewController的重用问题。
这种统一控件不应该用基类来做吗?比如整个应用所有按钮字体都是14号字,如果有1000个按钮你就多了1000行设置格式的代码?这种无意义代码不应该尽量减少吗?如果我又要加上背景颜色,那你岂不是要找到这1000个按钮然后挨个加上背景颜色?累不累。。。
XIB是可以设置基类的(custumclass),而且利用runtimeattr标签可以设置一些运行时属性,比如圆角,投影之类。我觉得这种代码属于无意义重复代码,如果能减少是最好的。
storyboard中似乎是无法直接制作view的,而必须要放入viewController中,以体现storyboard“scene”的意义,这不难理解。但在storyboard里做了一个容器viewControllerA(比如说,一个类网易新闻的横向标签条和一个scrollView的组合),想要作为基类来使用,同一个storyboard里使用A的派生类B,B中所有的控件都没有初始化,似乎是storyboard并不认可这样使用,让人有些困扰。
storyboard是故事版,你见过在链表里面插入一个字符串的吗,显然应该加个节点啊。。。
这种情况如果想用xib可以新建xib文件并建立关联即可。至于你说的初始化的问题,没看懂你想说什么,建议先了解一下view的生命周期和xib的加载流程。
后面的我不想说太多了,时间有限,如果有了问题建议先google一下,比如:
Usingxibobjectinsideanotherxib
我觉得能解决你的很多困惑。
还是那句话,具体问题具体分析。很多场景确实不适合使用Storyboard(比如我要写个基类继承UIButton然后有一些自己的默认属性比如字体颜色什么的),但是绝大部分场景是推荐使用XIB的。看你怎么用了。
当然Masonry也是个不错的选择。
                            
查看完整回答
反对 回复 2019-04-16
?
函数式编程

TA贡献1807条经验 获得超9个赞

用代码写会疯掉的,用storyboard代码能实现的它都能实现。
这里有几个地址你可以参考一下
raywenderlich
这个是raywenderlich翻译过来的
这个是onevcat写的
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信