iOS基础·OC高级篇iOS技术集合OC学习

纯代码TableCell/CollectionCell注意的问题

2018-09-27  本文已影响13人  swift_honor
图片来源网络.jpg

iOS 11之后 heightForHeaderInSection的方法设置后不生效

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (section == 1) {
        return 10;
    }
    return 0;
}

解决方案:

self.tableView.estimatedSectionHeaderHeight = 0;

heightForFooterInSection设置后不生效

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    if (section == 1) {
        return 10;
    }
    return 0;
}

解决方案:

self.tableView.estimatedSectionFooterHeight = 0;

TableCell使用纯代码写的布局,不自动适应布局的问题,需要在填充数据的时候调用
[self layoutIfNeeded];

- (void)fillViewWithAddress:(NSString *)address {
    [self layoutIfNeeded];
    if (!IS_VALID_STRING(address)) {
        self.labelAddress.text = @"选择收货地址";
    } else {
        self.labelAddress.text = address;
    }
}

TableCell纯代码布局,布局约束写在- (void)layoutSubviews

- (void)layoutSubviews {
    [super layoutSubviews];
    [self.labelAddress mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.trailing.equalTo(self);
        make.leading.equalTo(self).offset(10);
        make.bottom.equalTo(self).priorityLow();//将底部的约束priority设置成低优先级
        make.height.equalTo(@(44));
    }];
}

上一篇 下一篇

猜你喜欢

热点阅读