我想在编辑模式下更改UITableviewCell
的外观,就像它在apple的地址簿中显示一样。单元格应调整大小,我将添加UITextFields
作为子视图。
我知道要更改单元格的外观,您必须覆盖单元格中的LayoutSubviews
函数。我试着这样做,我有一些有趣的效果和调整大小: - )
我已经找了一段时间在网上找到一些提示,但我没找到一个。 如果有人能提供一些提示如何正确吗?教程或代码的链接没问题。
由于 涡
答案 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:
并在那里重新加载表格视图。