Masonryde 的優(yōu)點(diǎn)很多,就不多說了,但是在我剛開始使用的時(shí)候出現(xiàn)過一些問題,在這里寫出來,防止忘記.
第一個(gè)就是一定要添加到view上,就是先使用addSubview,不然的話,肯定會(huì)崩潰;
第二個(gè)就是導(dǎo)航條不要使用Masonry.
第三個(gè)就是with和and,內(nèi)部是把self返回附井,沒有實(shí)際意義
- (MASConstraint *)with {
? ? return self;
}
- (MASConstraint *)and {
? ? return self;
}
使用心得(根據(jù)GitHub上的demo寫的)
一潭兽、可以傳數(shù)組
?? make.height.equalTo(@[greenView, blueView]);//can pass array of views
效果是高度和數(shù)組里的空間相等
二召噩、更新約束
// this is Apple's recommended place for adding/updating constraints
- ?(void)updateConstraints;
三瘦癌、重新創(chuàng)建約束
remakeConstraints
四朴肺、內(nèi)邊距
? ? ? ? make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5,10,15,20));
五紊婉、TableView的自動(dòng)布局
很簡(jiǎn)單米者, ?
?? ?[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的方法里不要調(diào)用
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
//? ? UITableViewCell *cell = [self tableView:self.TV cellForRowAtIndexPath:indexPath];
//? ? return cell.frame.size.height;
//}
不用調(diào)用就好
//? ? self.branchTV.estimatedRowHeight = 130;
//? ? self.branchTV.rowHeight = UITableViewAutomaticDimension;
這兩個(gè)方法也可以不寫
六畜晰、成比例
三分之一
?make.height.equalTo(self.bottomInnerView.mas_width).multipliedBy(3);
multipliedBy(3)