修复ios7 uitableviewcell 编辑状态下 删除按钮被覆盖

自从sdk升级到ios7之后,问题不断,最近又发现一个问题,

在点击cell删除的时候,删除按钮被前面的view所覆盖,就去google了一下,在stackoverflow上找到了相应的解答,

就是自定义一个uitableviewcell的子类,然后重写layoutSubviews方法,其它的什么也不用动

方法如下:

 

第一种解决办法:

01// Fix for iOS7, when backgroundView comes above "delete" button
02- (void)willTransitionToState:(UITableViewCellStateMask)state {
03    [super willTransitionToState:state];
04    [self sendSubviewToBack:self.backgroundView];
05    dispatch_async(dispatch_get_main_queue(), ^{
06        [self sendSubviewToBack:self.backgroundView];
07    });
08}
09 
10- (void)didTransitionToState:(UITableViewCellStateMask)state {
11    [super didTransitionToState:state];
12    [self sendSubviewToBack:self.backgroundView];
13}

第二种解决办法:

01- (void)layoutSubviews
02{
03    [super layoutSubviews];
04 
05    for (UIView *subview in self.subviews) {
06 
07        for (UIView *subview2 in subview.subviews) {
08 
09            if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { // move delete confirmation view
10 
11            [subview bringSubviewToFront:subview2];
12 
13        }
14    }
15}

第三种解决办法(个人感觉比较简洁):

1- (void)layoutSubviews
2{
3    [super layoutSubviews];
4     
5    if (self.isEditing) {
6        [self sendSubviewToBack:self.contentView];
7    }
8 
9}

第四种解决办法:

1- (void) layoutSubviews {
2    [super layoutSubviews];
3 
4    if ([ [ [UIDevice currentDevice] systemVersion] compare: @"7.0" options: NSNumericSearch] != NSOrderedAscending) {
5        if (iOS7 == YES) {
6            self.backgroundView.frame = CGRectMake(0, self.backgroundView.frame.origin.y,
7                                                   self.backgroundView.frame.size.width, self.backgroundView.frame.size.height);
8    }
9}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值