2016-04-08 46 views
1

我搜索了很多,但我只找到如何更改删除按钮。我必须改变的是圆形小按钮的颜色。那可能吗?更改编辑表中红色按钮的颜色

enter image description here

+0

尝试循环通过子视图,看看那个按钮类是什么! –

回答

0

那红色按钮是不是一个按钮。这是一个图像。

您需要在UITableViewCell中查找子视图,并在子视图为UITableViewCellEditControl时,将视图转换为图像视图,然后更改其中的图像。

您需要有一个类似于红色图像的自定义彩色图像。

for (UIView *subv in cell.subviews){ 
    if ([NSStringFromClass([subv class]) isEqualToString:@"UITableViewCellEditControl"]) { 

       for (UIView *imgV in subv.subviews){ { 

        if(imgV isKindOfClass:[UIImageView class]]){ 
        UIImageView *imgView = (UIImageView *)imgV; 
        imgView.image=[UIImage imageNamed:@"blue.png"]; 
        imgV.backgroundColor=[UIColor blueColor]; 
        NSLog(@"subview-subview name is %@",NSStringFromClass([imgV class])); 
       } 

       } 

      } 
} 

enter image description here

请注意,改变私有子视图是不是一个好的做法。此方法可能无法在下一次iOS更新中使用 - 归功于@rmaddy。

另一个解决方法是设计自己的自定义单元格。

+0

这是危险的,易碎的代码。这段代码假定'UITableViewCellEditControl'的每个子视图都是'UIImageView'。这是一个可能导致崩溃的可怕假设。 – rmaddy

+0

感谢您的回答。阅读yoir代码,我想我必须把它放在cellForRowAtIndexPath方法中,对吧?是不是工作:( – Quetool

+0

@rmaddy所以你的主意是什么? – Quetool