我有3个分段控制器视图,还有一个我在tableview中添加了一个额外的自定义单元格。我的问题是如何在其中一个案例中设置自定义单元格,以便在视图加载时始终设置在tableView的顶部?谢谢!
@available(iOS 2.0, *)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let myCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath)
switch(mySegmentedControl.selectedSegmentIndex)
{
case 0:
myCell.textLabel!.text = globalList[indexPath.row]
break
case 1:
myCell.textLabel!.text = friendsList[indexPath.row]
break
case 2:
// *** I want to add a Cell here with a "Add Item" IBAction ---------------------
if(indexPath.row == meList.count) {
myCell.textLabel?.text = "+ Add Item"
// add new row here
/* OR add new button here as cell's subview */
// set frame of your button
// set target and selector method of button
// [cell addSubView: addButton]
}
else {
myCell.textLabel?.text = meList[indexPath.row]
}
default:
break
}
return myCell
}
答案 0 :(得分:0)
首先,在tableView(_:numberOfRowsInSection:)
中,您需要+ 1
返回的数字,因此还有一行。 (仅在mySegmentedControl.selectedSegmentIndex == 2
时执行此操作。)
然后在tableView(_:cellForRowAtIndexPath:)
中,如果mySegmentedControl.selectedSegmentIndex == 2
和indexPath.row == 0
(第一个单元格),请配置并返回“添加项目”单元格。
这一额外行的插入将使所有索引偏移1.因此,在else
语句中,您需要myCell.textLabel?.text = meList[indexPath.row - 1]
。这样,例如,当indexPath.row == 1
时,您将返回数组的第一个元素(第0个索引)。