[ios开发]Masonry的学习

一、导入库

Masonry支持CocoaPods,可以直接通过podfile文件进行集成,cocoapods的配置与Masonry的配置方法如下:
https://www.jianshu.com/p/9e4e36ba8574
如果已经配置完成,总体需要的代码就如下:

  1. 终端输入: cd /Users/(电脑的id)/Desktop/CocoaPodsTest
    //输入自己项目的路径或直接拖拽也行
  2. 创建Podfile文件:touch Podfile
  3. 编辑你想导入的第三方库的名称及版本
    使用vim编辑Podfile文件
    终端输入:vim Podfile
    在这里插入图片描述
    第一行变为ios 8.0
    第二行myapp变为需要添加的工程名字
    第三行AFNetworking变为需要的导入库 删除最后面的(保证最新)就行了。
  4. 把该库下载到Xcode中 在终端中输入:pod install

二、Masonry基础使用

mas_makeConstraints()    添加约束
mas_remakeConstraints()  移除之前的约束,重新添加新的约束
mas_updateConstraints()  更新约束
 
equalTo()       参数是对象类型,一般是视图对象或者mas_width这样的坐标系对象
mas_equalTo()   和上面功能相同,参数可以传递基础数据类型对象,可以理解为比上面的API更强大
 
width()         用来表示宽度,例如代表view的宽度
mas_width()     用来获取宽度的值。和上面的区别在于,一个代表某个坐标系对象,一个用来获取坐标系对象的值

如果想要使用不带有前面mas_的话加两行宏定义即可

其基础的设置属性如下:

1.尺寸:width、height、size。
2.边界:left、leading、right、trailing、top、bottom、edges。
3.中心点:center、centerX、centerY。
4.偏移量:offset、insets、sizeOffset、centerOffset。
5.priority()约束优先级(0~1000),multipler乘因数,dividedBy除因数。

大小关系有三种:

1.equalTo,相等。
2.lessThanOrEqualTo,小于等于。
3.greaterThanOrEqualTo,大于等于。

其他使用细节:https://www.jianshu.com/p/6ab926c6647d

如果写具体的位置offset()中的数值变为self.view.frame.size.height 乘以 所需要的百分数

三、源代码

  UIImage *first = [UIImage imageNamed:@"works_img1.png"];
        UIImageView *firstimage = [[UIImageView alloc]initWithImage:first];
        [cell addSubview:firstimage];
        [firstimage mas_makeConstraints:^(MASConstraintMaker *make){
    
    
//            make.centerX.equalTo(cell).offset(-100);
            make.top.equalTo(cell).offset(cell.frame.size.height * 0.005);
            make.left.equalTo(cell).offset(0);
            make.right.equalTo(cell).offset(0);
            make.height.equalTo(@200);
            }]

在对其产生约束后 在自定义cell中的所需要出现的位置便能达到效果 效果如下(上面的文字也同样使用了Masonry):
在这里插入图片描述

补充:最好使用百分比进行比较 就是*0.5类似这样的 这样可以保证换个机型也能正常运行

猜你喜欢

转载自blog.csdn.net/m0_46110288/article/details/108474989