Prototype Cells in a nib instead of a storyboard

前端 未结 2 1049
再見小時候
再見小時候 2020-11-29 18:02

For better re-usability I want to create a table view outside of my Storyboard.

Now when I create a UITableView based ViewController with Nib in Xcode I

相关标签:
2条回答
  • 2020-11-29 18:29

    iOS 5 includes a new method on UITableView: registerNib:forCellReuseIdentifier:

    To use it, put a UITableViewCell in a nib. It has to be the only root object in the nib.

    You can register the nib after loading your tableView, then when you call dequeueReusableCellWithIdentifier: with the cell identifier, it will pull it from the nib, just like if you had used a Storyboard prototype cell.

    0 讨论(0)
  • 2020-11-29 18:48

    In Swift 4:

    1. Create new CocoaTouch Class, Subclass from UITableViewCell.
    2. Important - Enable the checkbox 'Also create XIB file' which creates a Swift file and a .xib file
    3. Add labels in the Xib, as you would do for a prototype cell in Storyboard
    4. Connect label outlets to the new swift file
    5. Important - Register the nib file in viewDidLoad

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

      (or)

      yourTableview.register(UINib(nibName: "CustomCellTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell")
      
    6. Implement the datasource and delegates as normal and typecaste to the CustomCell in cellForRowAtIndexPath.
    0 讨论(0)
提交回复
热议问题