ios – 删除按钮由自定义单元格覆盖

前端之家收集整理的这篇文章主要介绍了ios – 删除按钮由自定义单元格覆盖前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的一个项目有问题.我在图片中有一个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;
            }
        }

    }
}

猜你在找的Xcode相关文章