Masonary-简化自动布局

Masonary是一个轻量级的框架,用于在iOS中简化纯代码开发时的AutoLayout约束设置。通过Masonary,开发者可以更便捷地实现多屏适配,避免使用NSLayoutConstraint时的繁琐。本文介绍了Masonary的价值,安装步骤,以及一个简单的使用示例,展示了如何创建一个与父视图保持10像素边距的紫色view1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Masonary的价值

在iOS中,AutoLayout是一种灵活且高效的布局视图的方法,它通过约束简单明确的实现了多屏适配的功能,但是如果不用storyboard而使用,纯代码开发时,使用NSContraints就显得有些繁琐了,而Masonary就是创建自动布局的轻量级框架。

如何安装

  1. 新建一个xcode工程
  2. 在Podfile中 添加 pod ‘Masonry’ (提示:最好在vim下编辑,关闭中文输入法)
  3. 在viewController.m中 #import <Masonry.h>
  4. 复制Masonary提供的例子
UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);
    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(superview.mas_top).with.offset(padding.top);
        make.left.equalTo(superview.mas_left).with.offset(padding.left);
        make.bottom.equalTo(superview.mas_bottom).with.offset(-padding.bottom);
        make.right.equalTo(superview.mas_right).with.offset(-padding.right);
    }];

直接执行是不行的,因为有些变量是还未定义的,
经过添加一段无聊的代码运行,还是报错 ld: library not found for -lPods-Masonary

添加链接库

注:有可能你运行也不会错,如果这样,就忽略好了,还有在原框架的安装时还提示添加prefix.pch,然后加上#define MAS_SHORTHAND,我自己测试没有效果,不知道是不是RP的问题。

直接看运行的效果:
效果图

紫色的view1,与父视图的self.view上下左右都留了10的边距 这就是那段代码的作用,还有更简单的写法,

// 更短的写法
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(superview).with.insets(padding);
}];

结束语

还有更多的更加细致的用法,我主要记录了自己在刚碰到这个框架遇到的问题,剩下的详情,请直接点击Masonary,英语不好,翻译不到位容易误人,
源代码
运行环境:Mac OS X 10.10.3 Xcode 6.3.1 iOS8.3 至少在这上面是绝对可以的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值