将2个不同的自定义UITableViewCells调用到UITableViewController中

时间:2015-08-27 16:26:38

标签: ios swift uitableview

我一直在网上试图解决这个问题,但无法找到明确的答案。这是发生了什么:

我创建了一个名为UITableViewController的{​​{1}},我有两个自定义单元格:#34; FirstCell"和" SecondCell"。它们都使用该命名约定作为其重用标识符。我还为每个创建了单元类文件:" FirstTableViewCell"和#34; SecondTableViewCell"我相应地分配了每个单元格。我还为每个MainTableViewController类文件中的单元格中的所有对象创建了IBOutlets

所以在UITableViewCell我没有问题得到" FirstCell"加载。我这样做是这样的:

MainTableViewController

我现在如何拨打" SecondCell"?我知道我需要将我的返回值更改为2.但是,如何更改override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 1 } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("FirstCell") as! FirstTableViewCell cell.friendfirstnameLabel.text = "Michael" cell.friendImageView.image = UIImage(named: "mikepic") return cell } dequeueReusableCellWithIdentifier代码以使我的单元格都能正常工作? "第二小区"具有完全不同的布局,并定义了不同的对象。

4 个答案:

答案 0 :(得分:1)

试试这个

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return yourArrayCount
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

   if indexPath.row % 2 == 0 { 
    let cell = tableView.dequeueReusableCellWithIdentifier("FirstCell") as! FirstTableViewCell

    cell.friendfirstnameLabel.text = "Michael"
    cell.friendImageView.image = UIImage(named: "mikepic")

    return cell
  } else {
    let cell = tableView.dequeueReusableCellWithIdentifier("SecondCell") as! SecondTableViewCell

    cell.friendfirstnameLabel.text = "Michael"
    cell.friendImageView.image = UIImage(named: "mikepic")

    return cell
  }
}

答案 1 :(得分:0)

您只需要使用指定的重用标识符来消除您的第二个单元格。当您想要先使用和第二次使用时,这完全符合您的要求。

答案 2 :(得分:0)

您只需根据dequeueReusableCellWithIdentifier更改发送到[indexPath row]的参数值即可。如果为0,则使用"firstCell",如果为1,则使用"secondCell"并为匹配的对象类型创建一个单元格。

答案 3 :(得分:0)

在这里,我看到你在单元格视图中显示静态文本。通常我们有NSArray数据来填充tableview中的数据,我们在umberOfRowsInSection方法中定义计数 因此,如果您知道要在哪个单元格中显示哪些数据就可以轻松使用,如果您可以轻松使用,那将非常容易。如果语句用于选择您想要的表格单元格视图

 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayCount
}

在检查计数后,您可以通过if语句

执行此操作
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
NSUInteger row = [indexPath row]; 

if [yourArray objectAtIndex:row] =="Michael" { 
let cell = tableView.dequeueReusableCellWithIdentifier("FirstCell") as! FirstTableViewCell

cell.friendfirstnameLabel.text = "Michael"
cell.friendImageView.image = UIImage(named: "mikepic")

return cell
} else {
let cell = tableView.dequeueReusableCellWithIdentifier("SecondCell") as! SecondTableViewCell

cell.friendfirstnameLabel.text = “Unknown"
cell.friendImageView.image = UIImage(named: "mikepic")

 return cell
 }
}