第一种解决办法:

// Fix for iOS7, when backgroundView comes above "delete" button
- (void)willTransitionToState:(UITableViewCellStateMask)state {
[super willTransitionToState:state];
[self sendSubviewToBack:self.backgroundView];
dispatch_async(dispatch_get_main_queue(), ^{
[self sendSubviewToBack:self.backgroundView];
});
} - (void)didTransitionToState:(UITableViewCellStateMask)state {
[super didTransitionToState:state];
[self sendSubviewToBack:self.backgroundView];
}

第二种解决办法:

- (void)layoutSubviews
{
[super layoutSubviews]; for (UIView *subview in self.subviews) { for (UIView *subview2 in subview.subviews) { if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { // move delete confirmation view [subview bringSubviewToFront:subview2]; }
}
}

第三种解决办法:(最简单,最直接,最有效)

- (void)layoutSubviews
{
[super layoutSubviews];
if (self.isEditing) { [self sendSubviewToBack:self.contentView]; } }

第四种解决办法:

- (void) layoutSubviews {
[super layoutSubviews]; if ([ [ [UIDevice currentDevice] systemVersion] compare: @"7.0" options: NSNumericSearch] != NSOrderedAscending) {
if (iOS7 == YES) {
self.backgroundView.frame = CGRectMake(0, self.backgroundView.frame.origin.y,
self.backgroundView.frame.size.width, self.backgroundView.frame.size.height);
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

05-11 23:02