我试图将较低的细胞保持在它们上方的细胞前面。我在一个单元格中有一个子视图,理想情况下会在下面的单元格后面。我无法找到将代码放在何处执行此操作。我想我应该使用这段代码:
for i in 0 ..< arrayWarningTitles.count{
let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: i, inSection: 0))
self.tableView.bringSubviewToFront(cell!)
}
但是我不确定在哪里,因为我已经尝试了几个不同的地方而且没有一个工作(willDeselectRowAtIndexPath和didSelectRowAtIndexPath),我也想在初始加载时也是如此。任何建议将不胜感激!
更新(添加了表格视图代码):
以下是我的表格视图代码的大部分内容,如果它可以帮助任何人,我已删除了上面的代码段,因为它不起作用。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selection = indexPath.row
tableView.beginUpdates()
tableView.endUpdates()
// self.tableView
}
override func tableView(tableView: UITableView, willDeselectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
tableView.beginUpdates()
tableView.endUpdates()
return indexPath;
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
cell.selectionStyle = UITableViewCellSelectionStyle.None
cell.backgroundColor = UIColor.clearColor()
// Configure the cell...
let warningTitle = self.view.viewWithTag(1) as? UILabel
let expirationTime = self.view.viewWithTag(2) as? UILabel
let textView = self.view.viewWithTag(5) as? UITextView
let grayBackground = self.view.viewWithTag(6)
let redBackground = self.view.viewWithTag(7)
warningTitle?.text = arrayWarningTitles[indexPath.row]
redBackground!.layer.masksToBounds = true;
redBackground!.layer.cornerRadius = 20;
grayBackground!.layer.masksToBounds = true;
grayBackground!.layer.cornerRadius = 20;
redBackground?.clipsToBounds = false;
cell.clipsToBounds = false;
cell.contentView.clipsToBounds = false;
cell.contentView.superview?.clipsToBounds = false;
self.tableView.bringSubviewToFront(cell)
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if (indexPath.row == selection) { //change 0 to whatever cell index you want taller
return UIScreen.mainScreen().bounds.height - 140 - 64;
}
return 58;//Choose your custom row height
}