请选择 进入手机版 | 继续访问电脑版

[IOS] iOS masonry的利用 方法

[复制链接]
查看108 | 回复15 | 2021-9-13 16:48:21 | 显示全部楼层 |阅读模式
目次

iOS masonry的基本使用

前言 :

在写OC的UI时,当在不同的机型上运行时,假如 只用frame则会导致视图中的控件严肃 变形,这是由于 不同机型的屏幕大小不一样,以是 这周学习了masonry,把握 了一些基本用法。在使用 第三方库Masonry之前,必要 先安装CocoaPods。

一、CocoaPods的安装

安装教程

安装好后,创建一个工程“test2”,创建竣事 后在终端输入以下代码:

  1. cd /Users/haoqianbiao/Desktop/test2  //文件的路径
复制代码

然后在终端输入:

  1. touch PodFile
复制代码

之后我们的文件里就多了一个Podfile的文件

iOS masonry的利用
方法

然后在该文件里输入:

  1. platform :ios, '7.0'
  2. target 'test2' do
  3. pod 'Masonry'
  4. end
  5. //target后面的单引号里是你工程的名字
复制代码

末了 一步是在终端读取PodFile找到干系 类库下载并自动 集成到项目中,同时天生 新的*.xcworkspace文件:
之后就直接打开xcworkspace文件举行 编程就可以了。

二、Masonry的基本使用

1、三个束缚 和基础API

  1. /添加新约束
  2. - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
  3. //更新约束,会覆盖之前的约束
  4. - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
  5. //完全移除旧约束,添加新约束(重置)
  6. - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
  7. equalTo() 参数是对象类型,一般是视图对象或者mas_width这样的坐标系对象
  8. mas_equalTo() 和上面功能相同,参数可以传递基础数据类型对象,可以理解为比上面的API更强大
  9. width() 用来表示宽度,例如代表view的宽度
  10. mas_width() 用来获取宽度的值。和上面的区别在于,一个代表某个坐标系对象,一个用来获取坐标系对象的值
复制代码

示例:

  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. // Do any additional setup after loading the view.
  4. UILabel* label = [[UILabel alloc] init];
  5. [self.view addSubview:label];
  6. [label mas_makeConstraints:^(MASConstraintMaker *make) {
  7. make.centerX.equalTo(self.view);
  8. make.top.equalTo(self.view).offset(100);
  9. make.size.mas_equalTo(CGSizeMake(200, 50));
  10. }];
  11. label.backgroundColor = [UIColor blackColor];
  12. UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
  13. [self.view addSubview:button];
  14. [button mas_makeConstraints:^(MASConstraintMaker *make) {
  15. make.centerX.equalTo(label);
  16. make.top.equalTo(label.mas_bottom).offset(100);
  17. make.size.mas_equalTo(CGSizeMake(200, 50));
  18. }];
  19. [button setBackgroundColor:[UIColor yellowColor]];
  20. [button setTitle:@"更新约束" forState:UIControlStateNormal];
  21. [button addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
  22. [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  23. }
  24. -(void) press:(UIButton*) btn {
  25. [btn mas_updateConstraints:^(MASConstraintMaker *make) {
  26. make.size.mas_equalTo(CGSizeMake(100, 100));
  27. }];
  28. }
复制代码

效果 :

 

iOS masonry的利用
方法
iOS masonry的利用
方法

 到此这篇关于iOS masonry的使用 方法的文章就先容 到这了,更多干系 iOS masonry的使用 内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457476 | 2021-9-19 04:43:45 | 显示全部楼层
楼上的心情不错啊!
回复

使用道具 举报

avatar 素身素 | 2021-9-20 15:32:47 | 显示全部楼层
被admin楼主的逻辑打败了!
回复

使用道具 举报

avatar 尘埃384 | 2021-10-9 16:20:54 | 显示全部楼层
收藏了,以后可能会用到!
回复

使用道具 举报

avatar 123456868 | 2021-10-9 16:20:57 | 显示全部楼层
十分赞同admin楼主!
回复

使用道具 举报

avatar 武汉嘉瑞 | 2021-10-11 10:49:53 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar 人生如梦总人q | 2021-10-11 10:50:07 | 显示全部楼层
刚分手,心情不好!
回复

使用道具 举报

avatar 大路84 | 2021-10-11 13:09:39 | 显示全部楼层
楼上长在线啊?
回复

使用道具 举报

avatar 漠河龙哥 | 2021-10-12 14:45:35 | 显示全部楼层
态度决定一切,不错!
回复

使用道具 举报

avatar 静静的等258 | 2021-10-15 23:55:08 | 显示全部楼层
顶顶更健康!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则