我的UITableViewCells运行正常。我希望能够单击菜单按钮以展开单元格的高度,以根据图像显示一组按钮:
我的代码如下:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == Globals.selectedRowIndex {
return 335
} else {
return 125
}
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
if indexPath.row == Globals.selectedRowIndex {
Globals.selectedRowIndex = -1
} else {
Globals.selectedRowIndex = indexPath.row
}
tableView.reloadData()
}
然而,按钮都会在较小的尺寸上挤压在一起。我以为它们只会被裁剪出来。我想我可以通过点击它们隐藏来解决这个问题。我还没试过这个。
我也无法为它们设置高度,因为我的约束似乎不适用于单元格内的任何内容。我不知道为什么。我可以设置自动调整但不限制约束。
我认为虽然我可能还有一种更好的方法可以解决这个问题。任何指针将不胜感激。
答案 0 :(得分:0)
首先迭代到tableCount并指定false。例如,
for i=0;i<tablecount;i++
{
self.isSelected.append(false)
}
例如,如果您有5个单元格,则您将拥有如下值:
isSelected = [false, false, false, false, false]
然后,扩展单元格分配True.Otherwise指定False
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedIndex[indexPath.row] = indexPath.row;
if isSelected[indexPath.row]
{
isSelected[indexPath.row] = false
self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade)
}
else
{
isSelected[indexPath.row] = true
self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade)
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if isSelected[indexPath.row]
{
return 275.0
}
else
{
return 110.0
}
}