无法解决垂直可扩展的UITableViewCells显示按钮

时间:2017-10-11 13:49:04

标签: ios swift xcode

我的UITableViewCells运行正常。我希望能够单击菜单按钮以展开单元格的高度,以根据图像显示一组按钮:

Image

我的代码如下:

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()
}

然而,按钮都会在较小的尺寸上挤压在一起。我以为它们只会被裁剪出来。我想我可以通过点击它们隐藏来解决这个问题。我还没试过这个。

我也无法为它们设置高度,因为我的约束似乎不适用于单元格内的任何内容。我不知道为什么。我可以设置自动调整但不限制约束。

我认为虽然我可能还有一种更好的方法可以解决这个问题。任何指针将不胜感激。

1 个答案:

答案 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
                }

}