美文网首页
iOS8以后UITableView,cell高度自适应注意点

iOS8以后UITableView,cell高度自适应注意点

作者: _iceCoke | 来源:发表于2017-09-05 09:39 被阅读0次

    注意点一

    //在设置 tableView 高度为自适应(UITableViewAutomaticDimension)
    //要记得设置估算高度(estimatedRowHeight)才会发挥作用 
    _tableView.rowHeight = UITableViewAutomaticDimension;
    _tableView.estimatedRowHeight = 100.0f;
    
    

    注意点二

    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier;
    //直接在cell的初始化方法里用autolayout布局
    //布局参照最好都以contentView为基准
    
    例:[self makeConstraints];
    
    
    - (void)makeConstraints {
        [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.equalTo(self.contentView).offset(16.0f);
            make.top.equalTo(self.contentView).offset(16.0f);
        }];
        
        [self.whiteView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self.contentView);
            make.left.right.equalTo(self.contentView);
            make.bottom.equalTo(self.nameLabel).offset(10.0f);
        }];
        
        //假设我们是按从上往下的顺序开始布局。
        //当有高度动态变化的控件(如:nameLabel)时,用 whiteView 来框住 nameLabel ,这样我们就可以根据 whiteView 来确定 nameLabel 的位置。
        //如果最底部的控件的高度是固定的,我们直接相对 whiteView 布局即可;
        //如果最底部的控件的高度不是固定的,我们需要添加一个额外的底部控件(如:autoResizingView)来确定布局,这样就可以动态布局高度啦!
        UIView *autoResizingView = [[UIView alloc] init];
        [self.contentView addSubview:autoResizingView];
        [autoResizingView mas_remakeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self.whiteView.mas_bottom);
            make.left.right.equalTo(self.contentView);
            make.bottom.equalTo(self.contentView).offset(-10.0f);
        }];
    }

    相关文章

      网友评论

          本文标题:iOS8以后UITableView,cell高度自适应注意点

          本文链接:https://www.haomeiwen.com/subject/lxfujxtx.html