笔尖中的原型单元而不是故事板

时间:2011-12-20 10:43:24

标签: objective-c ios xcode nib uistoryboard

为了更好的可重用性,我想在Storyboard之外创建一个表视图。

现在,当我在Xcode中使用Nib创建基于UITableView的ViewController时,我在nib文件中获得了默认的TableView。但是,我无法在Interface Builder中添加原型单元格,就像我在Storyboard中一样。

目前无法在笔尖中添加原型单元格,还是我遗漏了某些内容。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:91)

iOS 5在UITableView上包含一个新方法:registerNib:forCellReuseIdentifier:

要使用它,请在笔尖中放置UITableViewCell。它必须是笔尖中唯一的根对象。

您可以在加载tableView后注册nib,然后在调用dequeueReusableCellWithIdentifier时:使用单元格标识符,它将从nib中拉出它,就像使用了Storyboard原型单元格一样。

答案 1 :(得分:4)

在Swift 4中:

  1. 从UITableViewCell创建新的CocoaTouch类,子类。
  2. 重要 - 启用复选框'还创建XIB文件',这会创建一个Swift文件和一个.xib文件
  3. 在Xib中添加标签,就像在Storyboard
  4. 中为原型单元格所做的那样
  5. 将标签出口连接到新的swift文件
  6. 重要 - 注册 viewDidLoad中的nib文件

    yourTableview.register(UINib.init(nibName: "CustomCellTableViewCell", bundle: nil), forCellReuseIdentifier: "Cell")
    

    (或)

    yourTableview.register(UINib(nibName: "CustomCellTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell")
    
  7. 在cellForRowAtIndexPath中实现数据源并将其委托为正常和委托给CustomCell。