在编辑模式之间切换时,避免UITableViewCell移动

时间:2010-08-13 01:02:58

标签: iphone objective-c cocoa-touch ipad uikit

好吧,我有一些奇怪的行为,这个问题发生在已经解决了这个问题的人们身上。

我有4个不同的UITableViewCells子类。它们都非常相似(我看不出会带来问题的差异)。

现在我的UITableView的委托有以下代码:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section < 2)
             return UITableViewCellEditingStyleNone;
     else if (indexPath.row == [[AccountManager sharedManager].accounts count])
      return UITableViewCellEditingStyleNone;
     else return UITableViewCellEditingStyleDelete;
 }

现在,我期望在更改tableView的setEditing:property属性时前两行不会改变。

这是棘手的部分:

他们向前移动的前两行没有出现“删除图标”。

在最后一个部分中,单元格不向右移动单个像素,只有行显示“删除图标”。

以下是一些信息:

我的单元格视图和子视图都没有实现 - (void)layoutSubviews

所有这些都实现 - (void)drawRect:(CGRect)rect

所有单元格和单元格的子视图ContentMode都设置为其默认设置 所有autoresizingMask都设置为默认设置。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果您将子视图直接添加到UITableViewCell,则在UITableView中切换编辑模式时动画将无效。

如果要激活它们,则应将子视图添加到UITableViewCell的contentView属性中。