UITableview与一个以上的自定义单元格与Swift

UITableview与一个以上的自定义单元格与Swift,第1张

概述我想使用一个UITableview与不同的自定义tableViewCells。我的3个细胞是这样的: > Cell1:应该有一个图像和一个标签。 > Cell2:应该有两个标签。 > Cell3:应该有一个dayPicker。 我不想编写单元格的标签。我如何在Swift中管理这个。我必须为每个单元格编写自己的类吗?我可以使用一个tableviewController?如何在不同的单元格中填充数据? 我想使用一个UItablevIEw与不同的自定义tableVIEwCells。我的3个细胞是这样的:

> 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存