我实施了点击单元格或按钮的内容,tableview
cell
将展开。但问题是,如果我将最后cell
扩展到tableview
之后。我怎样才能调整tableview
的大小并将单元格移动一点?
我只使用约束和单元格内的views
来制作它。
看起来像这样,蓝色一个是主要的,黑色将会扩展。
我不知道代码是必须的,但这就是我扩展它的方式。
这是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
,然后将其向上移动但不起作用。
答案 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()
}
我希望这有助于你