如何在 StoryBoard 上添加 Xib
在 1975 年的经典软件项目管理书籍《神话人月。Essays on Software Engineering》中,Fred Brooks 指出,无论选择哪种编程语言,一个专业的开发人员平均每天要写 10 行代码(LoC)。
StoryBoard 有利于节省代码行,提高效率,苹果在每次 WWDC 上都会大力推荐,并不断改进。
我不明白为什么还有很多团队负责人要求他们可怜的程序员用编程的方式来写 UIView。
也许他们认为有些 CustomViews 的重用性很强,如果将其粘贴到 StoryBoard 中,会造成多余的副作用。
所以,这个解决方案的主要思路是,将 CustomViews 凝聚到 Xib 中,然后添加到 StoryBoard 中。
这需要几个步骤,因为苹果并不直接支持它。
- 添加一个 IBDesignable
CustomView.Swift
和CustomView.Xib
- 将
CustomView.xib->占位符->文件的所有者->自定义类
设置为CustomView
- 以编程方式新建一个 CustomView 并从 CustomView.Xib 加载根视图
- 在 init 函数的
CustomView
上在水平和垂直中心添加宽度和高度相等的根视图 - 现在您可以将 View 拖到 StoryBoard,并将其类设置为
CustomView
,这可以生成快照以进行预览
但是 CustomView 的子视图(如 UIButton)无法连接到 ViewController@IBOutlet
Delegate
or Block
可以解决这个问题。
至于我,我建议 Block
方式, 因为我用过 Delegate
半年了,发现
- ViewController 会有太多 delegates
delegate = self
必须写viewDidLoad
而有时=nil
在viewDidDisappear
Block
的代码会更少,更简单。
下面是例子,可能会减少你的时间。