第三方库的下载使用和Masonry学习
第三方库的下载
1.安装cocoapods,具体可以参考这位大佬的博客链接: 链接: cocopods安装,亲测可行哦亲。
2.打开终端,输入cd空格后拖入文件
3.输入pod init来初始化一个podfile;成功后文件夹内会多出一个podfile文件,内容是这样的
如果是在oc框架下,建议修改为以下形式
可以直接在podfile里直接改,也可以在终端里输入open Podfile来打开;记住经可能改为这种形式,不然可能会出现下载了,用不了的情况(问就是我就是这样的);
4.pod install
一般没出现error就下载完成了,这时会多出几个文件
之后我们只要用那个space文件就行了,这里我下载了一个名为Masonry的第三方库。
Masonry的学习
这个名为Masonry的第三方库,功能有点类似于自适应式图,可以对视图对象进行约束,并自定义上下左右的宽距;
对Masonry的使用,其实就是对封装好的函数方法的调用,网上查询到的方法有以下这些:
mas_makeConstraints() 添加约束
mas_remakeConstraints() 移除之前的约束,重新添加新的约束
mas_updateConstraints() 更新约束,写哪条更新哪条,其他约束不变
equalTo() 参数是对象类型,一般是视图对象或者mas_width这样的坐标系对象
mas_equalTo() 和上面功能相同,参数可以传递基础数据类型对象,可以理解为比上面的API更强大
width() 用来表示宽度,例如代表view的宽度
mas_width() 用来获取宽度的值。和上面的区别在于,一个代表某个坐标系对象,一个用来获取坐标系对象的值
1.下载好库之后,引用Masonry的头文件
#import “Masonry.h”
2.对视图对象添加约束并设定参数;
[view01 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(150) ;
make.left.mas_equalTo(70) ;
make.width.mas_equalTo(250) ;
make.height.mas_equalTo(250) ;
}] ;
//
// ViewController.m
// textdomo
//
// Created by 朱敬业 on 2023/8/29.
//
#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.redColor ;
[self.view addSubview:view01] ;
self.view00 = view01 ;
UIView* view02 = [[UIView alloc] init] ;
view02.backgroundColor = UIColor.blueColor ;
[view01 addSubview:view02] ;
UIView* view03 = [[UIView alloc] init] ;
view03.backgroundColor = UIColor.greenColor ;
[view02 addSubview:view03] ;
[view01 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(150) ;
make.left.mas_equalTo(70) ;
make.width.mas_equalTo(250) ;
make.height.mas_equalTo(250) ;
}] ;
[view02 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(25) ;
make.left.mas_equalTo(25) ;
make.width.mas_equalTo(200) ;
make.height.mas_equalTo(200) ;
}] ;
[view03 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(25) ;
make.left.mas_equalTo(25) ;
make.width.mas_equalTo(150) ;
make.height.mas_equalTo(150) ;
}] ;
UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect] ;
[btn setTitle:@"1" forState:UIControlStateNormal] ;
[btn addTarget:self action:@selector(presschange) forControlEvents:UIControlEventTouchUpInside] ;
btn.frame = CGRectMake(10, 600, 30, 30) ;
[self.view addSubview:btn] ;
}
- (void)presschange {
[self.view00 mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(20) ;
make.left.mas_equalTo(20) ;
}] ;
}
@end
我这里是改变父视图位置来改变被约束的子视图位置,也可以改变宽距但没写了;