在UITableView Editmode中替换“删除”和“添加”按钮或图像

时间:2013-01-04 20:04:46

标签: objective-c cocoa-touch uitableview

是的,我知道......不应该(想要)替换UITableView中使用的默认按钮,因为用户会识别按钮并知道如何处理它们。

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

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

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

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

如果有人有任何建议,请告诉我们!

我不是在寻找editingAccessoryView那个将附件放在右边的人。

1 个答案:

答案 0 :(得分:1)

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

我使用调试器和视图层次结构中的`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来显示我的新图标!

查看完整示例:https://github.com/tiemevanveen/TableViewCustomEditControls