> Cell1:应该有一个图像和一个标签。
> Cell2:应该有两个标签。
> Cell3:应该有一个dayPicker。
我不想编写单元格的标签。我如何在Swift中管理这个。我必须为每个单元格编写自己的类吗?我可以使用一个tablevIEwController?如何在不同的单元格中填充数据?
我想生成一个tableVIEw,像一个iOS设备的联系人应用程序。
让我先回答你的问题。我必须为每个单元格编写一个自己的类吗?=>是的,我相信。至少,我会这样做。
我可以使用一个tablevIEwController?=>是的你可以。但是,您也可以在VIEw控制器中有一个表视图。
如何在不同的单元格中填充数据? =>根据条件,可以在不同的单元格中填充数据。例如,让我们假设你想要你的前两行像第一种类型的单元格。因此,您只需创建/重新使用第一类型的单元格并设置其数据。这将更清楚,当我告诉你屏幕截图,我猜。
让我给你一个VIEwController中的tableVIEw的例子。一旦你了解了主要概念,然后你可以尝试和修改反正你想要的。
步骤1:创建3个自定义tableVIEwCells。我命名它,FirstCustomtableVIEwCell,SecondCustomtableVIEwCell,ThirdCustomtableVIEwCell。你应该使用更有意义的名称。
步骤2:转到Main.storyboard并在您的VIEw控制器中拖放一个tableVIEw。现在,选择表视图并转到身份检查器。将“原型单元格”设置为3.这里,你只是告诉你的tableVIEw,你可能有3种不同类型的单元格。
步骤3:
现在,选择tableVIEw中的第一个单元格,并在身份检查器中,在自定义类字段中输入“FirstCustomtableVIEwCell”,然后在属性检查器中将标识符设置为“firstCustomCell”。
对所有其他人执行相同 *** 作 – 将其自定义类分别设置为“SecondCustomtableVIEwCell”和“ThirdCustomtableVIEwCell”。还要将标识符连续设置为secondCustomCell和thirdCustomCell。
步骤4:根据需要编辑自定义单元类并添加插座。我根据你的问题编辑它。
P.S:你需要把插座放在类定义下。
所以,在FirstCustomtableVIEwCell.swift下,
class FirstCustomtableVIEwCell: UItableVIEwCell {
你会把你的标签和图像视图出口。
@IBOutlet weak var myImageVIEw: UIImageVIEw! @IBOutlet weak var myLabel: UILabel!
并在SecondCustomtableVIEwCell.swift中,添加两个标签like-
import UIKitclass SecondCustomtableVIEwCell: UItableVIEwCell { @IBOutlet weak var myLabel_1: UILabel! @IBOutlet weak var myLabel_2: UILabel! overrIDe func awakeFromNib() { super.awakeFromNib() } overrIDe func setSelected(selected: Bool,animated: Bool) { super.setSelected(selected,animated: animated) }}
和ThirdCustomtableVIEwCell.swift应该看起来像 –
import UIKitclass ThirdCustomtableVIEwCell: UItableVIEwCell { @IBOutlet weak var dayPicker: UIDatePicker! overrIDe func awakeFromNib() { super.awakeFromNib() } overrIDe func setSelected(selected: Bool,animated: animated) }}
步骤5:在您的VIEwController中,为您的tableVIEw创建一个Outlet并设置从storyboard的连接。此外,您需要在类定义中将UItableVIEwDelegate和UItableVIEwDataSource添加为协议列表。
所以,你的类定义应该看起来像 –
class VIEwController: UIVIEwController,UItableVIEwDelegate,UItableVIEwDataSource {
之后,将您的表视图的UItableVIEwDelegate和UItableVIEwDatasource附加到您的控制器。在这一点,你的vIEwController.swift应该看起来像 –
import UIKitclass VIEwController: UIVIEwController,UItableVIEwDataSource { @IBOutlet weak var tableVIEw: UItableVIEw! overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() }}
P.S:如果你在VIEwController中使用tableVIEwController而不是tableVIEw,你可以跳过这一步。
步骤6:根据Cell类别将图像视图和标签拖放到单元格中。然后从故事板提供到他们的插座的连接。
步骤7:现在,在视图控制器中写入UItableVIEwDatasource的必需方法。
import UIKitclass VIEwController: UIVIEwController,UItableVIEwDataSource { @IBOutlet weak var tableVIEw: UItableVIEw! overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() } func numberOfSectionsIntableVIEw(tableVIEw: UItableVIEw) -> Int { return 1 } func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return 3 } func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell { if indexPath.row == 0 { let cell: UItableVIEwCell = UItableVIEwCell(style: UItableVIEwCellStyle.Default,reuseIDentifIEr: "firstCustomCell") //set the data here return cell } else if indexPath.row == 1 { let cell: UItableVIEwCell = UItableVIEwCell(style: UItableVIEwCellStyle.Default,reuseIDentifIEr: "secondCustomCell") //set the data here return cell } else { let cell: UItableVIEwCell = UItableVIEwCell(style: UItableVIEwCellStyle.Default,reuseIDentifIEr: "thirdCustomCell") //set the data here return cell } } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() }}总结
以上是内存溢出为你收集整理的UITableview与一个以上的自定义单元格与Swift全部内容,希望文章能够帮你解决UITableview与一个以上的自定义单元格与Swift所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)