当前位置:   article > 正文

iOS——CocoaPods的安装和使用以及Masonry框架_cocoapods安装

cocoapods安装

一、CocoaPods的安装

在安装CocoaPods之前,要确保你的设备已经配置好了ruby环境:

       先打开终端程序:>_

1、查看当前Ruby版本

Mac电脑自带Ruby环境,但是安装CocoaPods需要2.2.2版本及以上的,查看当前Ruby版本

ruby -v

如果出现了“ruby 版本号......”,就说明你的环境符合要求。如果不符合要求,就要对ruby进行升级:

若不符合要求:通过通过rvm来安装或升级Ruby

分别执行下面三条命令

  1. curl -L get.rvm.io | bash -s stable
  2. source ~/.bashrc
  3. source ~/.bash_profile
列出ruby可安装的版本信息
rvm list known
安装ruby
  1. rvm install 3.2.2
  2. rvm install ruby-3.2.2

ruby升级成功后,就可以继续下一步了 

2、更新Gem和更换源

sudo gem update --system
  1. //移除原有的源
  2. gem sources --remove https://rubygems.org/
  1. //更换为在国内的镜像源
  2. //这里也不一定要是这个源,也可以自行搜素选择清华大学的源或者是其他的源
  3. gem sources --add https://gems.ruby-china.com/
验证你的Ruby镜像是并且仅是ruby-china
gem sources -l

如果是以下结果说明正确,如果有其他的请自行百度解决

  1. *** CURRENT SOURCES ***
  2. //这里是你更换的源的地址
  3. https://gems.ruby-china.com/

3、开始安装CocoaPods,以下二选一

第一种:

sudo gem install -n /usr/local/bin cocoapods

第二种:

brew install cocoapods

4、安装本地库(非必需)

  1. 说明:该步骤是安装本地库,不安装也没事,项目可以照常pod install。
  2. 只不过不安装的话就不能使用pod search 命令了;
  3. 如果你追求完美那就继续往下看;
  1. /// A.如果你开启了kx上网,建议直接从官方进行下载安装(推荐)
  2. git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
  1. /// B.这是国内的镜像地址,速度刚刚的,想省事的就直接选这个吧
  2. git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk

二、cocoapods集成第三方框架到项目工程里面去

        这里就拿一会要说的Masonry框架示范。

1、先去Xcode创建一个新项目

2、在终端cd 拖入该项目

3、输入指令vim podfile创建podfile文件,然后按i进入到编辑模式,出现如下图:

然后开始输入以下代码:

  1. platform:ios, '11.0'
  2. target 'demoPic' do
  3. pod 'Masonry'
  4. end

platform:ios, '11.0'-->是设置该项目最低适配的iOS版本(注意该处的ios都为小写)

pod 'Masonry'--> 是为该项目添加第三方框架,此处添加的框架是Masonry

target 'demoPic' do -->的demoPic是你的项目名

输入完后,按“esc”,然后输入:wq,再回车退出编辑,然后输入以下指令:

  1. pod update
  2. # 或者
  3. pod install

就可以看到你的工程文件中出现了以下几个文件:

在黄色的星圈起来的那个文件中,你就可以开始写你的代码了。

三、Masonry介绍

        Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了,并具有高可读性,而且同时支持 iOS 和 Max OS X。相较与NSLayoutConstraints,masonry更加方便快捷,大量减少适配时间

使用Masonry的注意事项
使用Masonry添加约束需要在addSubview方法之后,否则程序会崩。
使用时经常会加mas_前缀,如果不想加前缀则在引用Masonry文件前加

  1. //定义这个常量,就可以不用在开发过程中使用mas_前缀
  2. #define MAS_SHORTHAND
  3. //定义这个常量,就可以让Masonry帮我们自动把基础数据类型的数据,自动装箱为对象类型
  4. #define MAS_SHORTHAND_GLOBALS

3.约束的三种方法

  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;

在Masonry框架中,为什么不能先约束了frame, 然后再去添加该视图?

原因是:在OC中,在Masonry框架中,不能先约束了frame再去添加该视图,因为Masonry是基于AutoLayout的,AutoLayout会根据视图的约束来计算视图的frame。如果先约束了frame,再添加该视图,那么Masonry就无法计算出正确的约束,可能会导致视图的位置、大小等出现问题。因此,在使用Masonry时,应该先添加视图,再使用Masonry添加约束。

四、Masonry的demo:查看照片墙

        这个demo的作用是将照片排列成一个照片墙,然后在点击照片的时候照片会自动放大并显示在屏幕中央,再点击一次照片又会缩小并回到原来的位置

  1. #import "PicViewController.h"
  2. #import "Masonry.h"
  3. @interface PicViewController ()
  4. @property (nonatomic, strong) UIScrollView *scrollView;
  5. @property (nonatomic, strong) UIButton *backButton;
  6. @end
  7. @implementation PicViewController
  8. - (void)viewDidLoad {
  9. [super viewDidLoad];
  10. self.view.backgroundColor = [UIColor orangeColor];
  11. self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
  12. self.scrollView.contentSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height*2);
  13. [self.view addSubview:self.scrollView];
  14. //将每一个照片都设置成按钮,并给按钮添加点击事件
  15. for (int i = 0; i < 6; i++) {
  16. for (int j = 0; j < 3; j++) {
  17. UIButton *pictureButton = [UIButton buttonWithType:UIButtonTypeCustom];
  18. NSString *strPic = [NSString stringWithFormat:@"pict%d.jpg",3 * i + j + 1];
  19. UIImage *image = [UIImage imageNamed:strPic];
  20. [pictureButton setBackgroundImage:image forState:UIControlStateNormal];
  21. [self.scrollView addSubview:pictureButton];
  22. [pictureButton mas_makeConstraints:^(MASConstraintMaker *make) {
  23. make.left.mas_equalTo(110 * j + 30);
  24. make.top.mas_equalTo(200 * i + 50);
  25. make.width.and.height.mas_equalTo(@100);
  26. }];
  27. pictureButton.selected = NO;
  28. pictureButton.tag = i*10+j;
  29. [pictureButton addTarget:self action:@selector(pressButton:) forControlEvents:UIControlEventTouchUpInside];
  30. }
  31. }
  32. }
  33. //为按钮添加选择事件,被选择的时候放大并显示在屏幕中央,不被选择的时候就缩小并回到正常位置
  34. - (void)pressButton :(UIButton*)button {
  35. if (button.selected == NO) {
  36. [self.scrollView bringSubviewToFront:button ];
  37. [button mas_remakeConstraints:^(MASConstraintMaker *make) {
  38. make.center.equalTo(self.view);
  39. make.width.and.height.mas_equalTo(@300);
  40. }];
  41. button.selected = YES;
  42. } else {
  43. [self.scrollView addSubview:button];
  44. NSInteger j = button.tag%10;
  45. NSInteger i = button.tag/10;
  46. [button mas_remakeConstraints:^(MASConstraintMaker *make) {
  47. make.left.mas_equalTo(110 * j + 30);
  48. make.top.mas_equalTo(200 * i + 50);
  49. make.width.and.height.mas_equalTo(@100);
  50. }];
  51. button.selected = NO;
  52. }
  53. }
  54. @end

正常状态:

选中状态:

CocoaPods安装转载自:

 CocoaPods安装方法-2023.08.02 - 简书

Cocoapods安装教程_曹文健DevLab的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/1004314
推荐阅读
  

闽ICP备14008679号