記錄專案中Swift3.0的語法變化

weixin_34365417發表於2016-11-11

Swift中CGRect等結構體的變化

之前轉載了一篇部落格,只要介紹了CGRect,CGSize和CGPoint的Swift寫法
[轉]Swift 範的 CGRect、CGSize 和 CGPoint

在這裡主要記錄一下CGRect的變化,我們也可以延伸其他結構體的寫法

  /// 官方文件
    public init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)

    public init(x: Double, y: Double, width: Double, height: Double)

    public init(x: Int, y: Int, width: Int, height: Int)

看到上面的文件我們就知道了怎麼寫了

let button = UIButton(frame: CGRect.init(x: 0, y: 0, width: 44, height: 44))

Swift3.0中Selector的變化

之前寫過一篇部落格主要介紹了Swift2.x中Selector的變化
Swift3.0中Selector的變化

    /// Swift3.0中的寫法
let button = UIButton(type: .Custom)
button.addTarget(self, action: #selector(bottomButtonClick), for: .touchUpInside) 
func bottomButtonClick(sender: UIButton){
  /// 列印button的tag
}

Swift3.0中SnapKit的新寫法

最新專案中使用了OC和Swift的混編,專案中使用了SnapKit,但是使用pod管理時出現問題,但是SnapKit是支援Swift3.0的,在簡書上看到了一個不錯的部落格swift3.0使用SnapKit3.0.0+

SnapKit之前的寫法

        //新增控制元件
        view.addSubview(bottomButton)
        bottomButton.snp_makeConstraints { (make) in
            make.bottom.equalTo(view.snp_bottom)
            make.left.right.equalTo(view)
            make.height.equalTo(44)
        }```
如果我們還是這樣寫,xcode8會顯示如下提示
![xcode8提示](http://upload-images.jianshu.io/upload_images/1242012-97ccaf2bc4052ed3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![xcode8提示](http://upload-images.jianshu.io/upload_images/1242012-a959208adaaaaf7d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通過提示可以看到請使用`snp.xxx`代替`snp_xxx`

### SnapKit Swift3.0的寫法

```Swift
        bottomButton.snp.makeConstraints{ (make) in
            make.bottom.equalTo(view.snp.bottom)
            make.left.right.equalTo(view)
            make.height.equalTo(44)
        }

相關文章