2016-01-26 20:15:01 +08:00
< img src = "http://snapkit.io/images/banner.jpg" alt = "" / >
2015-04-12 18:36:02 +08:00
2015-04-16 20:47:03 +08:00
SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.
2014-07-29 08:39:59 +08:00
2015-04-15 19:07:50 +08:00
[![Build Status ](https://travis-ci.org/SnapKit/SnapKit.svg )](https://travis-ci.org/SnapKit/SnapKit)
2016-09-14 17:29:01 +08:00
[![Platform ](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat )](https://github.com/SnapKit/SnapKit)
[![Cocoapods Compatible ](https://img.shields.io/cocoapods/v/SnapKit.svg )](https://cocoapods.org/pods/SnapKit)
2015-05-28 10:08:18 +08:00
[![Carthage compatible ](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat )](https://github.com/Carthage/Carthage)
2015-03-24 06:45:35 +08:00
2019-08-05 16:39:18 +08:00
#### ⚠️ **To use with Swift 4.x please ensure you are using >= 4.0.0** ⚠️
#### ⚠️ **To use with Swift 5.x please ensure you are using >= 5.0.0** ⚠️
2016-09-19 11:50:06 +08:00
2016-09-19 11:52:46 +08:00
## Contents
2016-09-19 11:50:06 +08:00
2016-09-14 17:29:01 +08:00
- [Requirements ](#requirements )
- [Migration Guides ](#migration-guides )
- [Communication ](#communication )
- [Installation ](#installation )
- [Usage ](#usage )
- [Credits ](#credits )
- [License ](#license )
## Requirements
2019-04-25 08:44:47 +08:00
- iOS 10.0+ / Mac OS X 10.12+ / tvOS 10.0+
2019-04-25 08:45:13 +08:00
- Xcode 10.0+
2019-04-25 08:44:47 +08:00
- Swift 4.0+
2016-09-14 17:29:01 +08:00
## Communication
- If you **need help** , use [Stack Overflow ](http://stackoverflow.com/questions/tagged/snapkit ). (Tag 'snapkit')
- If you'd like to **ask a general question** , use [Stack Overflow ](http://stackoverflow.com/questions/tagged/snapkit ).
- If you **found a bug** , open an issue.
- If you **have a feature request** , open an issue.
- If you **want to contribute** , submit a pull request.
## Installation
### CocoaPods
[CocoaPods ](http://cocoapods.org ) is a dependency manager for Cocoa projects. You can install it with the following command:
```bash
$ gem install cocoapods
```
2017-09-17 10:21:22 +08:00
> CocoaPods 1.1.0+ is required to build SnapKit 4.0.0+.
2016-09-14 17:29:01 +08:00
To integrate SnapKit into your Xcode project using CocoaPods, specify it in your `Podfile` :
```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '< Your Target Name > ' do
2019-04-25 08:44:47 +08:00
pod 'SnapKit', '~> 5.0.0'
2016-09-14 17:29:01 +08:00
end
```
Then, run the following command:
```bash
$ pod install
```
### Carthage
[Carthage ](https://github.com/Carthage/Carthage ) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with [Homebrew ](http://brew.sh/ ) using the following command:
```bash
$ brew update
$ brew install carthage
```
To integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile` :
```ogdl
2019-04-25 08:44:47 +08:00
github "SnapKit/SnapKit" ~> 5.0.0
2016-09-14 17:29:01 +08:00
```
Run `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project.
2020-09-25 11:29:40 +08:00
### Swift Package Manager
[Swift Package Manager ](https://swift.org/package-manager/ ) is a tool for managing the distribution of Swift code. It’ s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
> Xcode 11+ is required to build SnapKit using Swift Package Manager.
To integrate SnapKit into your Xcode project using Swift Package Manager, add it to the dependencies value of your `Package.swift` :
```swift
dependencies: [
.package(url: "https://github.com/SnapKit/SnapKit.git", .upToNextMajor(from: "5.0.1"))
]
```
2016-09-14 17:29:01 +08:00
### Manually
If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually.
---
## Usage
### Quick Start
2014-07-29 08:39:59 +08:00
```swift
2015-04-16 20:47:03 +08:00
import SnapKit
2014-07-29 08:39:59 +08:00
2015-04-16 20:47:03 +08:00
class MyViewController: UIViewController {
2014-07-29 08:39:59 +08:00
2015-04-16 20:47:03 +08:00
lazy var box = UIView()
2016-01-26 20:12:32 +08:00
2015-04-16 20:47:03 +08:00
override func viewDidLoad() {
super.viewDidLoad()
2016-01-26 20:12:32 +08:00
2015-04-16 20:47:03 +08:00
self.view.addSubview(box)
2019-08-05 16:39:18 +08:00
box.backgroundColor = .green
2016-01-26 19:00:26 +08:00
box.snp.makeConstraints { (make) -> Void in
2015-04-16 20:47:03 +08:00
make.width.height.equalTo(50)
make.center.equalTo(self.view)
}
2014-07-29 08:39:59 +08:00
}
2015-04-16 20:47:03 +08:00
2014-07-29 08:39:59 +08:00
}
```
2019-08-05 13:16:46 +08:00
### Playground
You can try SnapKit in Playground.
**Note:**
> To try SnapKit in playground, open `SnapKit.xcworkspace` and build SnapKit.framework for any simulator first.
2016-09-14 17:29:01 +08:00
### Resources
- [Documentation ](http://snapkit.io/docs/ )
- [F.A.Q. ](http://snapkit.io/faq/ )
## Credits
2014-12-05 09:36:41 +08:00
2016-09-14 17:29:01 +08:00
- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne))
2016-09-14 17:31:04 +08:00
- Many other contributors
2014-12-05 09:36:41 +08:00
2015-04-16 20:47:03 +08:00
## License
2014-07-29 08:39:59 +08:00
2016-09-14 17:29:01 +08:00
SnapKit is released under the MIT license. See LICENSE for details.