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来进行项目管理。 
      —完—

Masonry和Cocopods相关推荐

  1. ios cocopods 安装使用及高级教程

    CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的 ...

  2. iOS 自动布局框架 – Masonry 详解

    来源:伯乐在线 - 刘小壮 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了 ...

  3. 用 jQuery Masonry 插件创建瀑布流式的页面(转)

    瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...

  4. Swift如何使用Masonry和SnapKit

    SnapKit: https://github.com/SnapKit/SnapKit v.snp_makeConstraints { (make) in 由于swift和oc语法不一样 equalT ...

  5. iOS Masonry的使用详解

    Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS ...

  6. iOS开发之--Masonry多个平均布局

    使用Masonry平均布局,代码如下: 1.创建 // 图片组数NSArray *imgAry = @[@"home_icon01",@"home_icon02" ...

  7. iOS自动布局框架-Masonry详解

    目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的.而且有很多比较老的项目,本身就还在采用纯 ...

  8. (0068)iOS开发之AutoLayout框架Masonry使用心得

    苹果官方给出了一些有关自动布局的建议 不论用interfaceBuilder还是用代码来实现自动布局,这些建议都是适用的. (1)不用view的frame.bounds.center来指定view的形 ...

  9. iOS开发之Masonry框架-源码解析

    Masonry是iOS在控件布局中经常使用的一个轻量级框架.Masonry让NSLayoutConstraint使用起来更为简洁.Masonry简化了NSLayoutConstraint的使用方式,让 ...

最新文章

  1. 推动健全云生态 阿里云锐不可当
  2. Android四种Activity的加载模式(转)
  3. JAVA-封装-静态属性
  4. Python - MySQL数据库操作
  5. 用VirtualWifi软件实现无线网卡同时连接多个AP。
  6. Composer更新慢的终极解决方案-转
  7. 作为一个非天才型选手,普通程序员如何升级打怪?
  8. Nginx源码分析 - 实战篇 - 编写一个阶段化的模块(25)
  9. rar和zip文件加密的破解
  10. 在Linux虚拟机终端切换普通用户身份和root身份
  11. 【计算广告】基本概念及RTB/RTA投放策略介绍
  12. 智云通CRM:销售就是讲故事?
  13. WWW2023即将截稿
  14. pack_padded_sequence;pad_packed_sequence
  15. 演讲稿【物性的神奇】
  16. Hackintosh Dell vostro 5460 alpha v1.0 版本
  17. 表格分组标签:表格行分组中的隐藏功能
  18. python寻峰,LeetCode-python 162.寻找峰值
  19. PDF to Word Document Converter for Mac(PDF文档转换器)
  20. keras val_categorical_accuracy: 0.0000e+00问题

热门文章

  1. 火车头发布本地html,火车浏览器新浪博客自动调取本地文件发布脚本
  2. 中国合伙人正能量语句
  3. 50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
  4. mat java heap space_Memory Analyzer Tool定位Java heap space内存泄漏
  5. Tomcat的JVM配置:解决Out of memory:java head space
  6. SVN 常见问题解决
  7. 美油管运营商被勒索事件
  8. 微信分享朋友、朋友圈、QQ、QQ空间
  9. 新浪微博、微信朋友圈、qq空间分享---微信朋友圈
  10. 图片标注工具LabelImg的简单安装