gpt4 book ai didi

ios - 如何在 swift 中以编程方式实现具有多个原型(prototype)单元格的 UITableViewController

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:42 25 4
gpt4 key购买 nike

我刚刚开始学习 swift,我使用 StoryBoard 创建了一个设置页面,如附图所示。使用的引用链接是http://shrikar.com/xcode-6-tutorial-grouped-uitableview/

enter image description here

我想以编程方式做同样的事情,即我想实现 cellForRowAtIndexPath 函数,它具有不同的原型(prototype)单元格,如下图所示。如果可能,请引用给定的示例 UI 给出示例。

谢谢

最佳答案

project 对您来说是一个很好的开始由苹果公司创建。它包括各种各样的东西,本身就是一个演示应用程序。这将提供开始使用 UITableViewUITableViewCell 所需的所有一般信息。

1.为您希望在 tableView 中看到的每个自定义单元格创建一个 View (XIB) 文件。虽然您可以在代码中进行布局设计,但我建议您从视觉方法开始,看看效果如何,因为您必须能够自由操作自动布局、约束、尺寸类等。

2.创建一个包含单个 TableView 的 UIViewController。

3.为您在步骤 1 中创建的每个单元格 (XIB) 创建一个 Cocoa Touch 类文件 (.swift)。在这些文件中,您应该引用单元格中包含的内容(UILabels、UIImageViews 等) .不要忘记单元格应该具有这些相同的类(打开 XIB 文件,右侧面板上的第三个图标)

4.为您在 Storyboard中创建的 UIViewController 创建一个 Cocoa Touch 类文件 (.swift)。在这个 Cocoa Touch 类中引用(鼠标拖动)tableView。确保 Storyboard 中的 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 上,单击右侧面板上的最后一个按钮并将“数据源”和“数据委托(delegate)”拖到同一 View Controller (黄色圆形符号)。

7.确保您的 Cocoa Touch 类(在第 4 步中创建)符合 UITableViewDataSource、UITableViewDelegate 协议(protocol)(通过实现必要的方法)

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 {
}

如果您不完全确定如何实现这些必需的方法,您可以在我在帖子开头引用的项目中查找它们。

关于ios - 如何在 swift 中以编程方式实现具有多个原型(prototype)单元格的 UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com