如果扩展细胞,Tableview不会变大

时间:2016-08-23 19:25:49

标签: ios swift uitableview

我实施了点击单元格或按钮的内容,tableview cell将展开。但问题是,如果我将最后cell扩展到tableview之后。我怎样才能调整tableview的大小并将单元格移动一点?

我只使用约束和单元格内的views来制作它。

看起来像这样,蓝色一个是主要的,黑色将会扩展。

enter image description here

我不知道代码是必须的,但这就是我扩展它的方式。

这是cellForRowAtIndexPath

if (self.selectedIndex == indexPath.row){
                self.selectedIndex = -1
            }else{
                self.selectedIndex  = indexPath.row
            }

            self.productstable.beginUpdates()
            self.productstable.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
            self.productstable.endUpdates()
        }
        return cell

这是heightForRowAtIndexPath

if(selectedIndex == indexPath.row){
    return 210
}else{
    return 135
}

我尝试检测最后一个cell,然后将其向上移动但不起作用。

1 个答案:

答案 0 :(得分:1)

检查此代码

func reloadChange()
{
     let indexPath = NSIndexPath(forRow: selectedIndex, inSection: 0)
     self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
     //this is the way to scroll to your last cell
     self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: true)
}


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
     //code to expand and shrink your cell
     if(self.selectedIndex == indexPath.row)
      {
      self.selectedIndex = -1
      self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
     //this is the way to scroll to your last cell
     self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: true)
        return
      }
    self.selectedIndex = indexPath.row
    self.reloadChange()
}

我希望这有助于你