我的一个项目有问题.我在图片中有一个tableview.我的问题是我的自定义单元格背景与UITableView删除按钮重叠.任何人都可以帮我把它带到前面.
>我使用了以下代码,但有些开发人员说,如果我们使用该代码,Apple可能拒绝您的应用程序
- (void)layoutSubviews { [super layoutSubviews]; for (UIView *subview in self.subviews) { for (UIView *subview2 in subview.subviews) { //NSLog(@"confirm is %@",[subview2 class]); if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { // move delete confirmation view [subview bringSubviewToFront:subview2]; } else if ([NSStringFromClass([subview2 class]) isEqualToString:@"_UITableViewCellActionButton"]) { [subview bringSubviewToFront:subview2]; } } } }
>另一个问题是以下代码仅适用于iOS 7但不适用于iOS 8.
>如果我设置 – (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath;方法为YES我没有问题,但我们不想缩进.
任何想法都可能非常有用.
解决方法
UITableViewCell子视图的层次结构在iOS 7和iOS 8中有所不同,请尝试我的解决方案.
- (void)layoutSubviews { [super layoutSubviews]; for (UIView *subview in self.subviews) { // for iOS 8 if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { [self bringSubviewToFront:subview]; return; } // for iOS 7 for (UIView *subview2 in subview.subviews) { if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) { [subview bringSubviewToFront:subview2]; return; } } } }