0

我可以调整UITableview分隔线的高度吗?我UIView在单元格处添加用作分隔线,它很好,问题是当我滑动单元格删除它时,删除按钮是问题,它与分隔线重叠,还是我可以调整删除按钮的高度?

分隔线删除

在此处输入图像描述

4

4 回答 4

1

Rashad 粘贴的代码很旧(在此处找到),似乎不适用于 iOS 7 或 iOS 8。

这是有效的更新代码:

-(void)layoutSubviews {

    UIView *deleteButtonView = nil;

    for (UIView *subview in self.subviews) {
        // find the delete view in iOS 8
        if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]){
            deleteButtonView = subview;
            break;
        }

        // find the delete view in iOS 7
        if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellScrollView"]) {
            for (UIView *secondSubview in [subview subviews]) {
                if ([NSStringFromClass([secondSubview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {
                    deleteButtonView = secondSubview;
                    break;
                }
            }
        }
    }

    int heightOffset = 5;
    CGRect buttonFrame = deleteButtonView.frame;
    buttonFrame.origin.y = heightOffset;
    buttonFrame.size.height = self.frame.size.height-2*heightOffset;
    deleteButtonView.frame = buttonFrame;
}
于 2014-10-21T13:26:22.997 回答
0

我总是在单元格的 contentView 上像 subView 一样绘制分隔线。并在 tableView 中禁用 separatorStyle。并像这里自定义删除按钮:https ://stackoverflow.com/a/22396248/887325

于 2014-09-25T04:55:27.900 回答
0

在你的 TableViewCelllayoutSubviews方法中写下这个:

if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
    UIView *deleteButtonView = (UIView *)[subview.subviews objectAtIndex:0];
    CGRect newf = deleteButtonView.frame;
    newf.origin.x = 250;
    newf.origin.y = 47;
    newf.size.width = 30;
    newf.size.height = 50;

    deleteButtonView.frame = newf;
}

希望这可以帮助.. :)

于 2014-09-25T05:04:13.697 回答
0

如果您无法调整删除按钮的大小,请调整底部的大小UIView,使其与删除按钮重叠。

于 2014-11-28T03:46:24.057 回答