我刚开始学习swift,我使用StoryBoard在附加图像中创建了一个设置页面。使用的参考链接是http://shrikar.com/xcode-6-tutorial-grouped-uitableview/
同样的事情我想以编程方式进行,即我想实现 cellForRowAtIndexPath 函数,该函数具有不同的原型单元格,如下图所示。 如果可能的话,请参考给定的示例UI给出示例。
由于
答案 0 :(得分:1)
请仔细阅读dequeuereusablecellwithidentifier
。如果您使用的是Storyboard,请使用UITableViewCell
添加reusableIdentifier
。
答案 1 :(得分:1)
一个很好的开始就是Apple创建的这个project。它包含各种各样的东西,并且是一个演示应用程序。这将提供开始使用UITableView
和UITableViewCell
时所需的所有常规信息。
1.为您希望在tableView中看到的每个自定义单元格创建一个视图(XIB)文件。虽然你可以在代码中进行布局设计,但我建议你从视觉方法开始,看看怎么做,因为你必须能够自动操作自动布局,约束,大小类等等。
2.创建一个包含单个表视图的UIViewController。
3.为您在步骤1中创建的每个单元格(XIB)创建一个Cocoa Touch类文件(.swift)。在这些文件中,您应该引用您在单元格中包含的内容(UILabels,UIImageViews等) 。不要忘记单元格应该具有相同的类(打开XIB文件,右侧面板上的第三个图标)
4.为您在故事板中创建的UIViewController创建一个Cocoa Touch类文件(.swift)。参考(鼠标拖动)此Cocoa Touch类中的tableView。确保故事板中的UIViewController具有此类集(自定义类字段,与步骤3中的单元格相同)
5.在ViewDidLoad方法中为单元格注释nib
tableView.registerNib(UINib(nibName: "topCell", bundle: nil), forCellReuseIdentifier: "topCell")
tableView.registerNib(UINib(nibName: "contentCell", bundle: nil), forCellReuseIdentifier: "contentCell")
tableView.rowHeight = UITableViewAutomaticDimension; //<--Calculates rows height
tableView.estimatedRowHeight = 44.0; // automatically (iOS 8+)
6.在带有tableView的UIViewController上,单击右侧面板上的最后一个按钮,然后拖动数据源&#34;以及&#34;数据委托&#34;到相同的视图控制器(黄色圆形符号)。
7.确保你的Cocoa Touch类(在步骤4中创建)符合协议UITableViewDataSource,UITableViewDelegate(通过实现必要的方法)
class FeedVC: UIViewController, UITableViewDataSource, UITableViewDelegate {
} // <-- your class for the UIViewController with tableView
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
}
如果你不完全确定如何实现这些必需的方法,你可以在我在帖子开头引用的项目中查找它们。