Objective c 我是否可以将自定义复选标记与UITableView';是否将编辑期间的AllowsMultipleSelection设置为YES?

Objective c 我是否可以将自定义复选标记与UITableView';是否将编辑期间的AllowsMultipleSelection设置为YES?,objective-c,cocoa-touch,ios5,uitableview,Objective C,Cocoa Touch,Ios5,Uitableview,一幅画胜过千言万语 关于更多的背景信息,我有一个UITableView,它利用iOS 5的允许在编辑过程中进行多次选择设置为YES。这将导致在单元格处于编辑模式时,在单元格左侧显示空的和填充的编辑控件。这种行为正是我想要的。我只想更改这些复选标记的外观 我知道可以编写自定义选择逻辑并基本上滚动我自己的版本(如和),但这正是我想要避免的。该系统已经就位,我希望尽可能多地重复使用它。这是我最近的一次。它简单有效,同时重用了几乎所有的预烘焙系统。然而,这也是一个巨大的漏洞,它依赖于在运行时内省一点后

一幅画胜过千言万语

关于更多的背景信息,我有一个UITableView,它利用iOS 5的
允许在编辑过程中进行多次选择
设置为
YES
。这将导致在单元格处于编辑模式时,在单元格左侧显示空的和填充的编辑控件。这种行为正是我想要的。我只想更改这些复选标记的外观


我知道可以编写自定义选择逻辑并基本上滚动我自己的版本(如和),但这正是我想要避免的。该系统已经就位,我希望尽可能多地重复使用它。

这是我最近的一次。它简单有效,同时重用了几乎所有的预烘焙系统。然而,这也是一个巨大的漏洞,它依赖于在运行时内省一点后利用
UITableViewCell
的未记录视图层次结构

简而言之,这只是隐藏了通常负责显示复选标记的视图,允许我添加自己的视图,并在其位置显示。然后,当单元格的选择或编辑状态更改时,我可以操纵此替代视图

要防止出现标准复选标记,只需自定义
-layoutSubviews
实现即可。根据文档,在
-willTransitionOnState:
-setEditing:animated:
之后调用它,确保在选择
编辑
更改时状态始终有效

- (void)layoutSubviews
{
    [super layoutSubviews];

    // Find the offending view, and quietly bury it...
    for (UIView* subview in [self subviews])
    {
        // As determined by NSLogging every subview's class, and guessing which was the one I wanted
        if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"])
        {
            [subview setHidden:YES];
        }
    }

    if ([self isEditing])
    {
        // Show the custom view however you want. 
        // The value of [self isSelected] will be useful...
    }
    else
    {
        // Hide the custom view.
    }
}

我仍然欢迎一个解决方案,这是多一点。。。洁食。

我用它来改变框架的大小。谢谢:)UITableViewCellEditControl实际上只包含一个UIImageView,它会根据选择状态进行更改。然后,您可以(通过setImage)替换图像,这样您就不必为定位之类的问题而烦恼了。那么tableView:应该在编辑RowAtIndexPath:时定义吗?Doc说它只适用于分组样式的表视图,但它也帮助了我处理普通视图