赞
踩
在安装CocoaPods之前,要确保你的设备已经配置好了ruby环境:
先打开终端程序:>_
Mac电脑自带Ruby环境,但是安装CocoaPods需要2.2.2版本及以上的,查看当前Ruby版本
ruby -v
如果出现了“ruby 版本号......”,就说明你的环境符合要求。如果不符合要求,就要对ruby进行升级:
分别执行下面三条命令
- curl -L get.rvm.io | bash -s stable
-
- source ~/.bashrc
-
- source ~/.bash_profile
rvm list known
- rvm install 3.2.2
- 或
- rvm install ruby-3.2.2
ruby升级成功后,就可以继续下一步了
sudo gem update --system
- //移除原有的源
- gem sources --remove https://rubygems.org/
- //更换为在国内的镜像源
- //这里也不一定要是这个源,也可以自行搜素选择清华大学的源或者是其他的源
- gem sources --add https://gems.ruby-china.com/
gem sources -l
如果是以下结果说明正确,如果有其他的请自行百度解决
- *** CURRENT SOURCES ***
-
- //这里是你更换的源的地址
- https://gems.ruby-china.com/
第一种:
sudo gem install -n /usr/local/bin cocoapods
第二种:
brew install cocoapods
- 说明:该步骤是安装本地库,不安装也没事,项目可以照常pod install。
- 只不过不安装的话就不能使用pod search 命令了;
- 如果你追求完美那就继续往下看;
- /// A.如果你开启了kx上网,建议直接从官方进行下载安装(推荐)
- git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
- /// B.这是国内的镜像地址,速度刚刚的,想省事的就直接选这个吧
- git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
这里就拿一会要说的Masonry框架示范。
1、先去Xcode创建一个新项目
2、在终端cd 拖入该项目
3、输入指令vim podfile创建podfile文件,然后按i进入到编辑模式,出现如下图:
然后开始输入以下代码:
- platform:ios, '11.0'
-
- target 'demoPic' do
- pod 'Masonry'
- end
platform:ios, '11.0'-->是设置该项目最低适配的iOS版本(注意该处的ios都为小写)
pod 'Masonry'--> 是为该项目添加第三方框架,此处添加的框架是Masonry
target 'demoPic' do -->的demoPic是你的项目名
输入完后,按“esc”,然后输入:wq,再回车退出编辑,然后输入以下指令:
- pod update
- # 或者
- pod install
就可以看到你的工程文件中出现了以下几个文件:
在黄色的星圈起来的那个文件中,你就可以开始写你的代码了。
Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了,并具有高可读性,而且同时支持 iOS 和 Max OS X。相较与NSLayoutConstraints,masonry更加方便快捷,大量减少适配时间。
使用Masonry的注意事项
使用Masonry添加约束需要在addSubview方法之后,否则程序会崩。
使用时经常会加mas_前缀,如果不想加前缀则在引用Masonry文件前加
- //定义这个常量,就可以不用在开发过程中使用mas_前缀
- #define MAS_SHORTHAND
- //定义这个常量,就可以让Masonry帮我们自动把基础数据类型的数据,自动装箱为对象类型
- #define MAS_SHORTHAND_GLOBALS
3.约束的三种方法
- //添加新约束
- - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
-
- //更新约束,会覆盖之前的约束
- - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
-
- //完全移除旧约束,添加新约束
- - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
在Masonry框架中,为什么不能先约束了frame, 然后再去添加该视图?
原因是:在OC中,在Masonry框架中,不能先约束了frame再去添加该视图,因为Masonry是基于AutoLayout的,AutoLayout会根据视图的约束来计算视图的frame。如果先约束了frame,再添加该视图,那么Masonry就无法计算出正确的约束,可能会导致视图的位置、大小等出现问题。因此,在使用Masonry时,应该先添加视图,再使用Masonry添加约束。
这个demo的作用是将照片排列成一个照片墙,然后在点击照片的时候照片会自动放大并显示在屏幕中央,再点击一次照片又会缩小并回到原来的位置
- #import "PicViewController.h"
- #import "Masonry.h"
-
- @interface PicViewController ()
-
- @property (nonatomic, strong) UIScrollView *scrollView;
- @property (nonatomic, strong) UIButton *backButton;
-
- @end
-
- @implementation PicViewController
-
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor orangeColor];
- self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
- self.scrollView.contentSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height*2);
- [self.view addSubview:self.scrollView];
- //将每一个照片都设置成按钮,并给按钮添加点击事件
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 3; j++) {
- UIButton *pictureButton = [UIButton buttonWithType:UIButtonTypeCustom];
- NSString *strPic = [NSString stringWithFormat:@"pict%d.jpg",3 * i + j + 1];
- UIImage *image = [UIImage imageNamed:strPic];
- [pictureButton setBackgroundImage:image forState:UIControlStateNormal];
- [self.scrollView addSubview:pictureButton];
- [pictureButton mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(110 * j + 30);
- make.top.mas_equalTo(200 * i + 50);
- make.width.and.height.mas_equalTo(@100);
- }];
- pictureButton.selected = NO;
- pictureButton.tag = i*10+j;
- [pictureButton addTarget:self action:@selector(pressButton:) forControlEvents:UIControlEventTouchUpInside];
- }
- }
- }
-
- //为按钮添加选择事件,被选择的时候放大并显示在屏幕中央,不被选择的时候就缩小并回到正常位置
- - (void)pressButton :(UIButton*)button {
- if (button.selected == NO) {
- [self.scrollView bringSubviewToFront:button ];
- [button mas_remakeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(self.view);
- make.width.and.height.mas_equalTo(@300);
- }];
- button.selected = YES;
- } else {
- [self.scrollView addSubview:button];
- NSInteger j = button.tag%10;
- NSInteger i = button.tag/10;
- [button mas_remakeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(110 * j + 30);
- make.top.mas_equalTo(200 * i + 50);
- make.width.and.height.mas_equalTo(@100);
- }];
- button.selected = NO;
- }
- }
-
-
- @end
-
正常状态:
选中状态:
CocoaPods安装转载自:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。