【iOS】—— Masonry学习


前言

在学习Masonry之前需要先安装好Cocoapods,接着通过cocoapods来调用第三方库Masonry,关于cocoapods的安装可以参考这篇博客最新cocoapods安装流程

一、基本概念

Masonry 是一个用于 iOS 和 macOS 的自动布局库,它基于 Auto Layout 的 NSLayoutConstraints,提供了一种简化、可链接和表达性强的语法来处理布局约束。使用 Masonry,您可以通过链式调用方法来创建和管理视图之间的约束关系,而无需编写繁琐的原始 Auto Layout 代码。它通过提供一组简洁的 API,使得布局约束的创建变得更加直观和易于理解。

二、使用方法

在我们为工程安装好所需第三方库Masonry之后,cocoapods会为我们创建一个新的工程文件,之后我们进行代码编写时使用新创建的工程文件即可。
在这里插入图片描述
在新的工程文件中当我需要调用第三方库Masonry时,只需在当前项目中添加#import "Masonry.h"即可。

以下是Masonry库中所包含的一些封装好的函数

mas_makeConstraints()//用于添加约束,约束可以是边距,上下左右的距离,宽度或高度等。
mas_remakeConstraints()//移除之前的约束,重新添加新的约束
mas_remakeConstraints()//用于重置约束。可以在需要动态修改约束时使用。
equalTo()//用于设置约束关系中的相等关系。可以将一个视图的属性设置为另一个视图的属性。
masequalTo()//与上面的功能类似,比上面的函数多了类型转换操作
offset()//用于设置相对于某个视图的偏移量。

注意事项
1.使用mas_makeConstraints()添加约束需要在使用addSubview方法添加视图之后,否则会报错。
2.一般来说,equalTo()和masequalTo()两个方法都是通用的,但是对于数值元素使用mas_equalTo,对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);


下面是我调用第三方库Masonry实现的一个小demo,实现视图的重叠功能。

#import "ViewController.h"
#import "Masonry.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    UIView* view01 = [[UIView alloc] init];
    view01.backgroundColor = [UIColor blueColor];
    [self.view addSubview:view01];
    
    UIView* view02 = [[UIView alloc] init];
    view02.backgroundColor = [UIColor yellowColor];
    [view01 addSubview:view02];
    
    UIView* view03 = [[UIView alloc] init];
    view03.backgroundColor = [UIColor greenColor];
    [view02 addSubview:view03];
    
    [view01 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.center.equalTo(self.view);
            make.size.mas_equalTo(CGSizeMake(300, 300));
    }];
   
    [view02 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_offset(50);
        make.left.mas_equalTo(50);
        make.width.mas_offset(200);
        make.height.mas_equalTo(200);
    }];
    
    [view03 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_offset(50);
        make.left.mas_equalTo(50);
        make.width.mas_offset(100);
        make.height.mas_equalTo(100);
    }];
}
@end

运行结果如下:
请添加图片描述

总结

Masonry 是一个强大而简洁的自动布局库,它提供了一种更加优雅和易用的方式来处理视图之间的布局约束。无论是处理简单的界面布局还是复杂的自定义视图布局,Masonry 都能够帮助您更高效地创建和管理布局约束,加快开发速度并减少出错的可能性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值