Masonry
2015-08-28 00:00
169 查看
摘要:OC版本对应的是Masonry,Swift版本对应的是SnapKit
mas_makeConstraints使用最多,做初始约束,只负责新增约束
mas_updateConstraints针对make中的约束做更新,一般不添加新约束,只是对于原约束数值的修改.
mas_remakeConstraints清除之前所有的约束,采用里面设置的最新约束,常用于动画之后新位置的约束设定
优先级高.priorityHigh,优先级低.priorityLow,通常用于根据条件判断来设定优先响应哪种约束
multipliedBy(x)=*x,dividedBy(x)=/x
实现动画时,更新约束后调用layoutIfNeeded
make.edges.mas_equalTo(UIEdgeInsetsMake(10,10,10,10));
//edges就是相当于top-left-bottom-right
//top和left里的offset为正数
//那么为什么bottom和right里的offset是负数呢?因为这里计算的是绝对的数值计算的bottom需要小
于sv的底部高度所以要-10同理用于right
//有意思的地方是and和with其实这两个函数什么事情都没做,可以省略的
/*等价于
make.top.equalTo(weakSelf.sv).with.offset(10);
make.left.equalTo(weakSelf.sv).with.offset(10);
make.bottom.equalTo(weakSelf.sv).with.offset(-10);
make.right.equalTo(weakSelf.sv).with.offset(-10);
UIScrollView是一个有点特殊的view,对于在里面放其他view,最好的做法是先放一个containerView设置edges相等,然后在此view上添加subview.
模仿系统的UITabBarController的底部View,可以设定个数和间隔:
-(
void
)simulateSystemTabBarWithButtonCount:(NSInteger)countwithSpace:(CGFloat)
space{
[self.viewshowPlaceHolder];
self.view.backgroundColor=[UIColorgrayColor];
NSMutableArray*viewArray=[NSMutableArrayarrayWithCapacity:10];
for
(
int
i=0;i<count;i++){
UIView*view=[UIView
new
];
view.backgroundColor=[UIColorcolorWithHue:(arc4random()%256/256.0)
saturation:(arc4random()%128/256.0)+0.5
brightness:(arc4random()%128/256.0)+0.5
alpha:1];;
[viewshowPlaceHolder];
[self.viewaddSubview:view];
[viewArrayaddObject:view];
}
UIView*lastView=viewArray.lastObject;
for
(
int
i=0;i<count;i++){
UIView*view=(UIView*)viewArray[i];
[viewmas_makeConstraints:^(MASConstraintMaker*make){
make.bottom.equalTo(view.superview);
make.height.equalTo(@49);
make.width.equalTo(lastView);
if
(i==0){
make.left.mas_equalTo(view.superview).offset(space);
}
else
{
UIView*frontView=(UIView*)viewArray[i-1];
make.left.equalTo(frontView.mas_right).offset(space);
(i==viewArray.count-1)?make.right.mas_equalTo(view.superview).offset(-space):nil;
}
}];
}
}
mas_makeConstraints使用最多,做初始约束,只负责新增约束
mas_updateConstraints针对make中的约束做更新,一般不添加新约束,只是对于原约束数值的修改.
mas_remakeConstraints清除之前所有的约束,采用里面设置的最新约束,常用于动画之后新位置的约束设定
优先级高.priorityHigh,优先级低.priorityLow,通常用于根据条件判断来设定优先响应哪种约束
multipliedBy(x)=*x,dividedBy(x)=/x
实现动画时,更新约束后调用layoutIfNeeded
UIScrollView是一个有点特殊的view,对于在里面放其他view,最好的做法是先放一个containerView设置edges相等,然后在此view上添加subview.
模仿系统的UITabBarController的底部View,可以设定个数和间隔:
相关文章推荐
- 在线CRM应变通实施
- 移动前端页面开发:实现页面元素拖动
- freetype 编程入门
- 有关MySQL的数据库规范与日常经验
- sqlplus无法退格 (backspace)
- android Dialog 宽是否占满
- 江苏盐城启动“智慧教育”建设 促进教育现代化发展
- VIEWGOOD(远古)在线访谈在政府行业中的应用
- 网络新媒体业务融合解决方案
- 保利威视平台:视频远程同步工具
- Java使用compareToIgnoreCase比较时间大小
- junit 初步认识
- virtualbox下找不到1366x768显示模式
- maven centos 安装
- Mybatis整合Spring
- Spring mvc 返回json格式
- 惟他网 电子书在线阅读 下载平台 致力于极致体验
- 全面解读远丰BBCbuilder系统五大优势
- 上海远丰:电商ERP贯穿企业发展始末
- ElabBuilder:实验室里的电子商务