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

前端之家收集整理的这篇文章主要介绍了UITableview与一个以上的自定义单元格与Swift前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用一个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 UIKit

class 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 UIKit

class 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 UIKit

class 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 UIKit

class 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()
    }
}

猜你在找的Swift相关文章