美文网首页
iOS开发Masonry自动布局注意事项

iOS开发Masonry自动布局注意事项

作者: 我的心都有自己喜欢做个爱豆一样 | 来源:发表于2018-08-01 16:25 被阅读0次

    Masonryde 的优点很多,就不多说了,但是在我刚开始使用的时候出现过一些问题,在这里写出来,防止忘记.

    第一个就是一定要添加到view上,就是先使用addSubview,不然的话,肯定会崩溃;

    第二个就是导航条不要使用Masonry.

    第三个就是with和and,内部是把self返回,没有实际意义

    - (MASConstraint *)with {

        return self;

    }

    - (MASConstraint *)and {

        return self;

    }


    使用心得(根据GitHub上的demo写的)

    一、可以传数组

       make.height.equalTo(@[greenView, blueView]);//can pass array of views

    效果是高度和数组里的空间相等

    二、更新约束

    // this is Apple's recommended place for adding/updating constraints

    -  (void)updateConstraints;

    三、重新创建约束

    remakeConstraints

    四、内边距

            make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5,10,15,20));

    五、TableView的自动布局

    很简单,  

        [self.contentView addSubview:self.bgView];

      [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {

            make.top.equalTo(self.contentView).offset(10);

    //        make.height.mas_equalTo(120);

            make.left.mas_equalTo(20);

            make.right.mas_equalTo(-20);

            make.bottom.mas_equalTo(0);

        }];

    label换行就行,tableview的方法里不要调用

    //- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    //    UITableViewCell *cell = [self tableView:self.TV cellForRowAtIndexPath:indexPath];

    //    return cell.frame.size.height;

    //}

    不用调用就好

    //    self.branchTV.estimatedRowHeight = 130;

    //    self.branchTV.rowHeight = UITableViewAutomaticDimension;

    这两个方法也可以不写

    六、成比例

    三分之一

     make.height.equalTo(self.bottomInnerView.mas_width).multipliedBy(3);

    multipliedBy(3)

    相关文章

      网友评论

          本文标题:iOS开发Masonry自动布局注意事项

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