【发布时间】:2016-03-19 13:37:36
【问题描述】:
我是 StackOverflow 的新手,并且一直在为这个问题苦苦挣扎,真的希望有人可以帮助并指出正确的方向。
我正在尝试制作自定义 UITableView 和自定义 UITableViewCell - 它们将一起形成自定义 UITableView,我希望在多个项目中重复使用。所以我要做的是将所有行+键盘处理等封装在自定义UITableView中,并将单元格的外观封装在自定义UITableViewCell中。
在一个新的 StoryBoard 中,我添加了一个 UIViewController 并添加了一个 UITableView,设计了我希望表格的外观并向其中添加了一个原型单元格。我用适当的标签、字段和约束设计了这个。让我们将此自定义外观表称为“MyCustomTableWithCustomCell”
所以现在我有了我的自定义表格,我想要在其他 Storyboard 中重复使用它。
我找到了一种解决方案(感谢 stackoverflow!),但这并不是我想要的:
- 我从
MyCustomTableWithCustomCell中提取了原型单元格(剪切 并粘贴到 Empty Interface Builder 文档中)并将其保存为 西布。 - 然后我通过 registerNib() 在我的自定义
UITableView中使用它 - 我可以在任何 Storyboard 中创建一个新的
UIViewController,添加一个UITableView,将其类设置为MyCustomTableWithCustomCell,它将 做我想做的事
问题是,我不喜欢单元格在单独的 xib 文件中的方式,因为它无法通过 IB 自动预览在不同的设备尺寸上轻松预览。无论我选择哪种设备尺寸,它看起来总是一样的。除非我每次想要更改任何内容时都在模拟器中构建和预览,否则很难看出设计如何与屏幕的其余部分匹配。如果单元格设计可以作为原型 TableViewCell 的一部分保留在蓝图故事板中,我更愿意。然后我可以轻松地对其进行修改,预览不同设备尺寸等。
所以我的问题是,做同样事情的最佳方法是什么,而不是使用 xib 文件,而是使用故事板中的原型表单元作为蓝图。或者换句话说,有没有办法在运行时将 Prototype 单元格提取到 Nib 中,以便我可以在创建自定义表时注册它。
例如。类似:
var myTableCellNib = myStoryBoard.myViewController.myTableView.myPrototypeCell.getNib()
registerNib(myTableCellNib)
期待听到您的想法!
【问题讨论】:
标签: ios xcode swift uitableview storyboard