iOS——初步使用Masonry

什么是Masonry

Masonry 就是第三方为我们封装好的一个 AutoLayout 框架。其使用点语法,可以非常便利的添加 AutoLayout约束,且通俗的语法让人非常容易理解。

如何使用Masonry

Masonry的使用方法十分简单

第一步:配置CocoaPod

这里不做讲解,具体可以参考下面的一篇博客
2021年CocoaPods安装方法

在你的项目中创建Podfile文件

首先打开终端输入命令cd 你的文件项目路径,可以直接拖入终端,如下所示:
在这里插入图片描述
接下来输入touch Podfile命令创建Podfile。
输入vim Podfile命令修改Podfile文件
在这里插入图片描述
加入以下几句话:
在修改前一定要按一下i,否则无法修改

platform :ios, '9.0'

target 'text' do // text为工程名
pod 'Masonry' // 引号内为添加的库

修改完之后按Esc,输入:wq,退出编辑
最后输入pod install,这样Podfile文件就配置完成了。

根据需要在代码中使用

下面是Masonry的一些API:

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

可以注意到这些API都带有前缀mas_,我们可以在引入Masonry头文件前加入两个宏定义,就可以不用加前缀了。

// 定义这个常量,就可以不用在开发过程中使用mas_前缀。
#define MAS_SHORTHAND
// 定义这个常量,就可以让Masonry帮我们自动把基础数据类型的数据,自动装箱为对象类型。
#define MAS_SHORTHAND_GLOBALS

以下是Masonry的一些基本属性:
其基础的设置属性如下:

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,大于等于。

Masonry是非常方便的,它可以通过点语法来使用,我们只需要在约束中设置即可。
如下使用:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    _startButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [_startButton setTitle:@"上传头像" forState:UIControlStateNormal];
    _startButton.tintColor = [UIColor blackColor];
    _startButton.titleLabel.font = [UIFont systemFontOfSize:25];
    _startButton.backgroundColor = [UIColor systemGrayColor];
    [_startButton addTarget:self action:@selector(pressButton) forControlEvents:UIControlEventTouchUpInside];
//    self.view.backgroundColor = [UIColor systemBlueColor];
    [self.view addSubview:_startButton];
    [_startButton makeConstraints:^(MASConstraintMaker *make) {
        make.width.and.height.equalTo(150);
        make.centerX.equalTo(self.view.centerX);
        make.centerY.equalTo(self.view.centerY);
    }];
}

注意这里添加约束一定要在addSubview语法后,不然就会引发错误。
文章参考:iOS——Masonry详解

小demo利用Masonry重写上传头像

完整代码上传在github。
MasonryDemo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值