1. 系统要求
- iOS 9.0+
- Xcode 10.0+
- Swift 4.2+
2. 安装
1. CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理工具。您可以使用以下命令安装它
$ gem install cocoapods要构建 DCAutoLayout 1.0.0+,需要 CocoaPods 1.1.0+。
要使用 CocoaPods 将 DCAutoLayout 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'DCAutoLayout', '~> 1.0.1'
end然后,运行以下命令
$ pod install2. Carthage
Carthage 是一个去中心化的依赖管理工具,它会构建您的依赖并提供二进制框架。
您可以使用以下命令,通过 Homebrew 安装 Carthage
$ brew update
$ brew install carthage要使用 Carthage 将 DCAutoLayout 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它
github "DarielChen/DCAutoLayout"
运行 carthage update 构建框架,并将构建的 DCAutoLayout.framework 拖入您的 Xcode 项目中。
3.手动
如果您不希望使用上述任何依赖管理器,可以手动将SnapKit集成到您的项目中。
3.使用
1.快速入门
import DCAutoLayout
class ViewController: UIViewController {
lazy var label = UILabel()
override func viewDidLoad() {
super.viewDidLoad()
label.backgroundColor = UIColor.groupTableViewBackground
view.addSubview(label)
label.layout {
$0.topAnchor == view.safeAreaTopAnchor + 20
$0.leadingAnchor == view.leadingAnchor + 20
$0.trailingAnchor == view.trailingAnchor - 20
$0.heightAnchor == 44
}
}
}2.设置父视图的边距为20像素。
label.layout {
$0.topAnchor == view.topAnchor + 20
$0.leadingAnchor == view.leadingAnchor + 20
$0.trailingAnchor == view.trailingAnchor - 20
$0.bottomAnchor == view.bottomAnchor - 20
}甚至更短
label.layout {
$0 == view.marign(20, 20, 20, 20)
}
3.>=、<=表示大于等于、小于等于。
您可以使用>=或<=来改变锚点。
label.layout {
$0.centerAnchor == view.centerAnchor
$0.widthAnchor == view.bounds.width - 40
$0.heightAnchor >= 44
}将高度设置为88像素。
label.layout {
$0.heightAnchor == 88
}4.组合
边距
label.layout {
$0 == view.marign(20, 20, 20, 20)
}
大小
label.layout {
$0.sizeAnchor == view.size(100, 44)
}居中
label.layout {
$0.centerAnchor == view.centerAnchor
}5.updateConstraints
使用 >=、<= 更新约束。
label.layout {
$0.heightAnchor >= 44
}更新约束。
label.layout {
$0.heightAnchor == 88
}reset anchor
在删除heightAnchor后设置heightAnchor。
label.layout {
$0.removeAnchor($0.heightAnchor)
$0.heightAnchor == 88
}clear all anchor
在删除所有锚点后设置任意锚点。
label.removeAllAnchor()
label.layout {
$0.removeAnchor($0.heightAnchor)
$0.heightAnchor == 88
}4.License
DCAutoLayout在MIT许可下发布。请参阅LICENSE文件了解详细信息。
