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

本文详细介绍了CocoaPods的安装步骤,包括检查Ruby版本、更新Gem源、安装CocoaPods以及集成Masonry框架到iOS项目中的过程。此外,还展示了Masonry的使用和注意事项,如约束添加顺序和照片墙Demo示例。
摘要由CSDN通过智能技术生成

一、CocoaPods的安装

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

       先打开终端程序:>_

1、查看当前Ruby版本

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

ruby -v

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

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

分别执行下面三条命令

curl -L get.rvm.io | bash -s stable 

source ~/.bashrc

source ~/.bash_profile
列出ruby可安装的版本信息
rvm list known
安装ruby
rvm install 3.2.2 
或 
rvm install ruby-3.2.2

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

2、更新Gem和更换源

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

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

*** CURRENT SOURCES ***

//这里是你更换的源的地址
https://gems.ruby-china.com/

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

第一种:

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

第二种:

brew install cocoapods

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

说明:该步骤是安装本地库,不安装也没事,项目可以照常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

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

        这里就拿一会要说的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介绍

        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添加约束。

四、Masonry的demo:查看照片墙

        这个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安装转载自:

 CocoaPods安装方法-2023.08.02 - 简书

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值