UITableViewCells在编辑模式下更改大小

时间:2011-03-08 12:22:43

标签: iphone objective-c uitableview edit

我想在编辑模式下更改UITableviewCell的外观,就像它在apple的地址簿中显示一样。单元格应调整大小,我将添加UITextFields作为子视图。 我知道要更改单元格的外观,您必须覆盖单元格中的LayoutSubviews函数。我试着这样做,我有一些有趣的效果和调整大小: - )

我已经找了一段时间在网上找到一些提示,但我没找到一个。 如果有人能提供一些提示如何正确吗?教程或代码的链接没问题。

由于 涡

4 个答案:

答案 0 :(得分:5)

覆盖setEditing:animated:并重新加载表视图单元格并不是一个好主意。 这非常耗费资源,而且不适合这样做。

UITableViewCell的子类中,覆盖方法didtransitionToState: 在那里,你可以直接在细胞出口上行动,如下:

    - (void)didTransitionToState:(UITableViewCellStateMask)state
    {
        [super didTransitionToState:state];

        if (state == UITableViewCellStateShowingEditControlMask) {
            // edit mode : peform operations on the cell outlets here

        } else if (state ==UITableViewCellStateDefaultMask) {
            // normal mode : back to normal
    }

答案 1 :(得分:1)

当你设置myTable.editing=YES;时,它会调用表视图数据源和委托方法。

因此,如果您要在表格中显示任何数据,则上面的代码行会调用delgate方法

所以你可以在这里编码

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

        if(myTable.editing==YES)
        {
            return 70;//customize it.
        }
        return 50;

}

答案 2 :(得分:0)

如果要调整单元格高度,还应在UITableView Delegate中更改“heightForRowAtIndexPath”。 至少这是我偶然发现的事情。

答案 3 :(得分:0)

覆盖setEditing:animated:并在那里重新加载表格视图。