非侵入性Cocoa依赖管理工具-Carthage

前面

仅支持ios8;而且必须有开发者账号,否则编译不通过。

最近想重新学习firefox-ios代码,好久没有更新它的代码,今天git pull 下来后,编译不成功,认真一看发现它使用了Carthage,做为项目的依赖管理工具。

介绍

初学ios,一定也会像原来写java时用maven,写Node时用npm。ios项目是也会有类似工具。

Carthage是非侵入的依赖管理工具,它使用xcodebuild来编译框架,生成二进制文件,然后由用户来选择集成它们(拖拽到你的Xcode项目中)。目前依赖源为github。

安装

pkg安装

release列表中下载最新版本pkg文件安装

源码编译安装

$ git clone https://github.com/Carthage/Carthage.git
$ cd Carthage
$ make install
$ carthage version

使用

创建Cartfile文件,添加依赖库

github "Masonry ...
more ...

轻量级布局框架-Snap安装

参考

介绍

Snap是一个轻量级布局框架,使用优雅的语法封装AutoLayout。Snap拥有自己的布局DSL,它提供一种链式操作描述你的NSLayoutConstraints,使你的布局代码变得简明易读。Snap同时支持IOS和OS X。

Snap使用Swift的特性,例如函数重载,所以它不能在Objective-C中使用。正因如此,我们使用snp_做为前缀,而Masonry使用mas_,所心在你可以在同一项目中同时使用Masonry和Snap。

基于Objective-C,移步Masonry

下载安装

基于不用storyboard开发ios8界面中的代码

下载

在项目的根目录,使用git submobule命令

$ git submodule add https://github.com/Masonry/Snap.git

安装到项目中

Finder中打开Snap,用鼠标拖到项目中

ios Img

将Snappy.framework添加到项目中

ios Img

简单示例(添加一个居中的按钮)

不使用自适应布局

上篇RootViewController.swift示例代码为:

override func viewDidLoad ...
more ...

不用storyboard开发ios8界面

这里不讨论 使用xib storyboard和代码编写UI的孰优孰劣。详见iOS User Interfaces: Storyboards vs. NIBs vs. Custom Code

创建新项目

创建新项目,选择Single View Application为模板。

ios Img

ios Img

删除storyboard

ios Img

plist删除key main

ios Img

新建rootViewController类

ios Img

ios Img

代码:

import UIKit

class RootViewController: UIViewController {

    var button: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        button = UIButton.buttonWithType(.System) as? UIButton
        button.frame = CGRect(x: 110, y: 70, width ...
more ...