我是StackOverflow
的新手,并且已经在这个问题上苦苦挣扎了一段时间,真的希望有人可以提供帮助并指出我正确的方向。
我正在尝试制作自定义UITableView
和自定义UITableViewCell
- 它们将共同构成一个自定义UITableView
,我想在多个项目中重复使用它。所以我要做的是在自定义UITableView
中封装所有行+键盘处理等,并且单元格在自定义UITableViewCell
中查找。
在一个新的StoryBoard中,我添加了一个UIViewController
并添加了一个UITableView
,设计了我希望表格的外观,并为其添加了原型单元格。我用适当的标签,字段和约束来设计它。让我们调用这个自定义外观表" MyCustomTableWithCustomCell"
所以现在我有自定义表,我想要的是在其他故事板中重用它。
我找到了一个解决方案(感谢stackoverflow!),但它并不是我想要的:
MyCustomTableWithCustomCell
中提取了原型单元格(cut
并粘贴到Empty Interface Builder文档中并将其保存为
厦门国际银行。 UITableView
中使用它
UIViewController
,添加一个
UITableView
,将其类设置为MyCustomTableWithCustomCell
,它会
做我想做的事问题是,我不喜欢单元格在单独的xib文件中的方式,因为它无法通过IB自动预览在不同的设备尺寸上轻松预览。无论我选择哪种设备尺寸,它总是看起来一样。除非我每次想要更改任何内容时都在Simulator中构建和预览,否则很难看出设计如何适应屏幕的其他部分。如果单元格设计可以作为原型TableViewCell的一部分保留在蓝图故事板中,我更喜欢。然后我可以轻松修改它,预览不同的设备尺寸等。
所以我的问题是,做同样事情的最佳方法是什么,而不是使用xib文件,使用Storyboard中的Prototype Table Cell作为蓝图。或者换句话说,有没有办法在运行时将Prototype单元格提取到Nib中,以便在创建自定义表格时可以注册它。
EG。类似的东西:
var myTableCellNib = myStoryBoard.myViewController.myTableView.myPrototypeCell.getNib()
registerNib(myTableCellNib)
期待听到您的想法!
答案 0 :(得分:0)
制作UITableViewCell
Swift文件 -
import UIKit
class ClassName: UITableViewCell {
@IBOutlet weak var lblData: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
转到故事板 - >视图控制器 - >表视图 - >拖放表格视图单元格并设计它,将类名称作为ClassName和标识符。
转到cellForRowAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell : ClassName! = tableView.dequeueReusableCellWithIdentifier("identifier") as! ClassName
cell.lblData.text = ""
return cell as ClassName
}