Objective c 更换';删除';和';添加';UITableView编辑模式下的按钮或图像

Objective c 更换';删除';和';添加';UITableView编辑模式下的按钮或图像,objective-c,cocoa-touch,uitableview,Objective C,Cocoa Touch,Uitableview,是的,我知道。。。不应该(希望)替换UITableView中使用的默认按钮,因为用户可以识别这些按钮并知道如何使用它们 然而,红色减号和绿色加号按钮在我定制的漂亮设计中看起来很糟糕,我真的很想找到一种方法将设计师的图片添加到这些按钮中(这些按钮仍然很容易识别) 所以问题是如何替换这些图像 一种方法是不使用标准的UITableView编辑模式,而是自己构建所有内容(如stackoverflow上的其他问题所建议的),但我希望我不必这么做 另一种方法是在willTransitionOnState中构

是的,我知道。。。不应该(希望)替换UITableView中使用的默认按钮,因为用户可以识别这些按钮并知道如何使用它们

然而,红色减号和绿色加号按钮在我定制的漂亮设计中看起来很糟糕,我真的很想找到一种方法将设计师的图片添加到这些按钮中(这些按钮仍然很容易识别)

所以问题是如何替换这些图像

一种方法是不使用标准的UITableView编辑模式,而是自己构建所有内容(如stackoverflow上的其他问题所建议的),但我希望我不必这么做

另一种方法是在
willTransitionOnState
中构建一个全新的状态,但我宁愿找到一种更简单的方法

如果有人有任何建议,请让我知道


我不是在寻找将accessoryView放置在右侧的
编辑accessoryView

我自己找到了这个问题的答案

我使用调试器和视图层次结构中的'po[self recursiveDescription]进行搜索,直到找到负责图标的视图,并将其替换为我自己的图像

我以github repo为例,但这是隐藏旧图像的代码:

- (void) removeOriginalEditControl{
    for (UIView *subview in self.subviews) {
        if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) {
            for (UIView *subsubview in subview.subviews) {
                if ([NSStringFromClass([subsubview class]) isEqualToString:@"UIImageView"]) {
                    [subsubview removeFromSuperview];
                    break;
                }
            }
        }
    }
}
稍后,我添加了一个新的UIImageView来显示我的新图标


查看完整示例:

很遗憾,正如您所提到的,没有比独自完成更简单的方法了。无法直接替换图像。
initWithImage:style:target:action:
很方便。。