Masonry和Cocopods

来源:互联网 发布:农民起义 知乎 编辑:程序博客网 时间:2024/06/15 10:39

Masonry 和 cocopods 介绍及安装步骤

Masonry 是什么、有什么用?

  • 出处:Masonry是github开源项目: https://github.com/Masonry/Masonry,
  • 作用:一个轻量级的布局框架, 封装了OC的自动布局。
  • 特点:采用链式语法、简洁明了、可读性高。
  • 平台:支持IOS、OSX。

安装方法(两种方法):

  • 方法一、从github下载源码导入项目。(测试版本: Masonry 0.6.1)
  • 方法二、用cocopods管理。
  • 本文绍介方法一及cocopods的安装和使用,方法二测试没有成功过,待续。

从github下载源码导入项目。(测试版本: Masonry 0.6.1):

  • 总步骤有:获取源码、将源码加入项目、定义两个宏、引用Masonry.h。 
    1. 下载源码:https://github.com/Masonry/Masonry;
    2. 解包后将Masonry文件夹复制到自己的项目文件夹里;
    3. 用XCODE打开自己的项目,将Masonry文件夹拖入项目,选择COPY;
    4. 定义两个宏: 
      #define MAS_SHORTHAND //use Masonry without the 'mas_' prefix 
      #define MAS_SHORTHAND_GLOBALS //enable auto-boxing for default syntax
    5. 引用头文件即可使用: 
      #import "Masonry.h"
    6. 可添加代码自动完成: 源码解包后复制CodeSnippets文件夹内的所有文件到~/Library/Developer/Xcode/UserData/CodeSnippets即可。
  • 注:步骤4和5可以用一个PCH文件实现项目的所有文件自动引用相关定义。 
    另外源码包解开后有一个README.MD文件,可以看看里面的 ‘## Installation’ 一节

* Xcode6 中添加 pch 文件的步骤:*

  1. 在项目里 (建议添加到 Supporting Files 组里) 添加一个.pch文件:
  2. 创建文件: right clicked > New File > IOS或OSX > Other > PCH FILE > NEXT > 设置一个名字然后保存.
  3. 将pch文件完事路径添加到XCODE: project > Build Settings > Search prefix > find ‘Prefix Header’, enter ‘$(SRCROOT)/path/xxx.pch’。(build , release 两个都要添加)
  4. 配置”xxx.pch文件内容”, 如果一切正常,即可使用:
  5. xxx.pch内容:
<code class="language-obj-c hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#ifdef __OBJC__ </span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//define this constant if you want to use Masonry without the 'mas_' prefix</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#define MAS_SHORTHAND</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//define this constant if you want to enable auto-boxing for default syntax</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#define MAS_SHORTHAND_GLOBALS</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#import "Masonry.h"</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#endif</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>

cocopods是什么有什么用?

  • 出处:rubygems 的开源项目, https://rubygems.org/ (可能被墙)
  • 作用:下载、管理IOS(测试过OC项目)项目的第三方库,创建一个Xcode的workspace来将这些第三方库和我们的工程相连接。
  • 特点:自动化的、集中的、直观的管理第三方开源库。

安装CocoaPods:

  1. CocoaPods需要Ruby环境,OSX自带。直接运行命令: 
    $ sudo gem install cocoapods
  2. 安装结束的时后,执行命令: 
    $ pod setup
  3. 安装可能遇到的问题: 
    1. 如果没有反应,可能是https被墙,用以下命令更换域名: 
      $ gem sources --remove https://rubygems.org/ 
      $ gem sources --remove https://rubygems.org/ 
      //要想验证是否替换成功了,可以执行: 
      $ gem sources -l 
      //正常的输出是: 
      *** CURRENT SOURCES *** 
      http://ruby.taobao.org/
    2. gem版本过老 
      gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可: 
      $ sudo gem update --system
    3. 执行 pod setup 报错: 
      /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (= 0) among 6 total gem(s) (Gem::LoadError) 
      from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec' 
      from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem' 
      from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'
       
      这就是路径设置的问题,执行下列命令解决问题: 
      $ rvm use ruby-1.9.3-p448
  4. 升级CocoaPods 
    升级很简单,再次执行安装命令即可 
    $ sudo gem install cocoapods

使用CocoaPods

  1. 进入项目目录, 创建Podfile: CocoaPods的一切都是从一个名为Podfile的文件开始的,先创建。 
    $touch Podfile
  2. 编辑Podfile(以安装Masonry为例) 
    pod 'Masonry'
  3. 在Podfile文件所在目录,执行下列命令安装三方库: 
    $ pod install 
    执行完成后,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。
  4. 以前的工程文件不使用了,现在使用xxx.xcworkspace文件, 打开它就是我们的项目.
  5. 工程发生了以下变化: 
    1. 第三方库会被编译成静态库供我们正真的工程使用: 
      CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。
    2. 我们的工程和第三方库所在的工程会由一个新生成的workspace管理 
      为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。 
      —完—
0 0