iOS如何改变UITableViewCell删除按钮的背景颜色和字体大小

 

我们需要重载cell的 - (void)layoutSubviews方法。

我们先来看看cell上都有些什么东西吧

 

- (void)layoutSubviews

{

    [super layoutSubviews];

    

    for (UIView *subView in self.subviews) {

      

       NSLog(@"%@",NSStringFromClass([subView class]));

    }

}

没有滑动cell时打印出得结果是:

 

2015-09-25 15:23:28.053 cellTest[2845:118038] UITableViewCellContentView

2015-09-25 15:23:28.053 cellTest[2845:118038] _UITableViewCellSeparatorView

 

滑动cell时打印出得结果是:

2015-09-25 15:26:43.425 cellTest[2845:118038] UITableViewCellDeleteConfirmationView

2015-09-25 15:26:43.425 cellTest[2845:118038] UITableViewCellContentView

2015-09-25 15:26:43.425 cellTest[2845:118038] _UITableViewCellSeparatorView

 

我们可以看到滑动后多了一个UITableViewCellDeleteConfirmationView,当我们拿到这个View时我们就可以改变cell删除按钮的颜色了

 

- (void)layoutSubviews

{

    [super layoutSubviews];

    

    for (UIView *subView in self.subviews) {

      

        if ([NSStringFromClass([subView class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {

            

            UIView *bgView=(UIView *)[subView.subviews firstObject];

            bgView.backgroundColor = [UIColor purpleColor];

        }

    }

}

 

这样cell删除按钮的背景颜由默认的红色改为了自定义的紫色,当然可以改为你想要的任意颜色

 

                  

同理我们可以看看UITableViewCellDeleteConfirmationView上有些什么

 

NSLog(@"%@",NSStringFromClass([[bgView.subviews firstObject] class]));

 

打印结果是:

 

2015-09-25 15:52:50.989 cellTest[2937:129075] UIButtonLabel

 

就只有一个UIButtonLabel,说明他就是cell删除按钮的titleLabel.

 

 

 

for(UIView *suview in bgView.subviews){

                

                if ([NSStringFromClass([suview class]) isEqualToString:@"UIButtonLabel"]) {

                    

                    UILabel *textLabel=(UILabel *)suview;

                    textLabel.font=[UIFont systemFontOfSize:14];

              }

                

    }

 

 

           

 

                                                                                               一起学习,一起进步!

 

 

 

 

 

你可能感兴趣的:(iOS点滴)