読者です 読者をやめる 読者になる 読者になる

しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

NSLayoutAnchorでAutoLayoutを簡単に実装

iOS9から出たNSLayoutAnchorを使うとソースコード上でのAutoLayoutの設定が簡単にできます。

試しにStoryboard上のこのビューを左上に配置してみます。

f:id:llcc:20160404235412p:plain

今まではNSLayoutConstraintを初期化してそれをビューに渡す必要がありました。

view.addConstraint(NSLayoutConstraint(item: subview,
    attribute: .Top,
    relatedBy: .Equal,
    toItem: view,
    attribute: .Top,
    multiplier: 10.0,
    constant: 10.0))
view.addConstraint(NSLayoutConstraint(item: subview,
    attribute: .Left,
    relatedBy: .Equal,
    toItem: view,
    attribute: .Left,
    multiplier: 10.0,
    constant: 10.0))

NSLayoutAnchorを使うと以下のように記述できます。
先ほどより少し見やすくなった気がします。

subview.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 10.0).active = true
subview.leftAnchor.constraintEqualToAnchor(view.leftAnchor, constant: 10.0).active = true