故事板/界面构建器与 iOS 开发的完整代码视图
Posted
技术标签:
【中文标题】故事板/界面构建器与 iOS 开发的完整代码视图【英文标题】:Storyboard / interface builder vs. full code views for iOS development 【发布时间】:2014-11-14 16:06:32 【问题描述】:我对 ios 开发有一种感觉,希望得到反馈。
Storyboard / Interface Builder 乍一看是很棒的工具。事实是,除了快速的原型和非常简单的用户界面之外,我总是觉得使用它们很受阻。这个问题可能提供了一个很好的例子:how can I use one storyboard for 4" and 3.5" iphone screens with autolayout (ios6 + ios7)?
我正在考虑对我的所有观点进行编码。主要是因为它可以让我实现一些逻辑,比如元素的等间距。 AFAIK 不可能通过 GUI 工具以跨设备方式完成。
我的问题是:Storyboard / IB 是否支持高级视图布局?如果这样做,您通常如何编写视图代码:扩展 UIView / 调整控制器?
编辑:接受的答案链接很好。有兴趣的读者也可以看看 Apple 的 Auto Layout Guide 相关例子:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html#//apple_ref/doc/uid/TP40010853-CH5-SW7
【问题讨论】:
这个问题实在是太宽泛了,无法单独回答。是否有您希望支持但您无法弄清楚如何在 IB 中创建的特定高级视图布局?请注意,Xcode 6 为故事板带来了该问题未解决的新功能。 您可以在情节提要中设置等间距,但您需要在视图之间添加间隔视图来完成此操作(如果您支持多个,我认为这也是在代码中执行此操作的最佳方式屏幕尺寸)。至于您之前的问题,最简单的方法是为顶部约束和高度约束制作 IBOutlets,并在代码中更改它们的常量值(因此是故事板和代码的混合方法)。故事板可以支持相当高级的布局,但每种情况都不同,您必须决定哪种最适合您。 【参考方案1】:http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial
Ray 提供了一个不错的入门指南,说明现在创建单个自适应视图是多么容易,这让我从完全编程转变。
【讨论】:
【参考方案2】:在 iOS 8 之前,使用 Interface Builder 构建复杂的布局要困难得多。您基本上仅限于拉伸或固定到边缘。现在,您可以构建适应尺寸等级的布局,并根据设备的宽度和高度更改其布局或约束。
话虽如此,即使在 IB 无法处理的非常困难的情况下,我仍然最终会在 XIB 中构建视图块,然后手动布置这些块。
TLDR;只要您知道如何使用它的所有功能,Interface Builder 将在 99.9% 的情况下提供帮助。
【讨论】:
以上是关于故事板/界面构建器与 iOS 开发的完整代码视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xcode 6.3 界面构建器故事板中默认模拟指标?
IOS开发系列--TableView多个TableViewCell自定义CellCell上画画(故事板+代码方式),ios7tableview索引