SwiftでAuto Layoutがめっちゃ楽に書けるライブラリ「Crew」
みなさま、Auto Layout書いてますか。
あれ、コードで書くのめっちゃめんどいですよね。クラス名もメソッド名も長いし。 Visual Format使うと無駄にDictionary作る必要がある上にミスっててもコンパイルで教えてくれへんし。 Storyboardはチーム開発で泣きそうになるし。
そんなあなたに、めっちゃイケてるライブラリのご紹介です。
その名も”Crew“。
使い方はREADMEを見ていただければ一発なんですが、とにかく記述量が少なくなります。 そして覚えることが少なくて直感的に書けるので、前書いたコードを探してコピペすることもなくなりました。
例えば横幅いっぱいのviewを縦に3つ、10ptずつ開けて置こうと思ったら、普通に書くと多分こんな感じになりますよね。
なんかこう、うえってなりますね。
これがなんと、こうなります!
オペレーターごりごり作りまくりな感じは好き嫌い別れるかもしれませんが、この一回見ればそらで書けそうな感じ、いかがでしょうか。
ざっくり解説すると、1行目は midView ~ .Top == topView ~ .Bottom + 10
で作ったNSLayoutConstraintを、 <<=
オペレータで view.addConstraint
してます。
そして midView ~ .Top == topView ~ .Bottom + 10
は NSLayoutConstraint(item: midView, attribute: .Top, relatedBy: .Equal, toItem: topView, attribute: .Bottom, multiplier: 1, constant: 10)
と同じです。なので、attributeはNSLayoutAttributeの値全て使えます。
3行目のUIEdgeInsetsを足してるやつは、なんと上下左右に対して同時にconstraintをかけられます。CSSのpaddingみたいな感じです。内部では上下左右それぞれに対して1・2行目のようなconstraintをかけています。(ソース)
さあ、もうこれを見てしまうと普通に書くのがあほらしくなってきたのではないでしょうか。当然新しく作るところからちょっとずつ適用したりもできるので、ぜひお試しください。
ちなみにこの view <<=
のところに配列で渡せたらもっといいなーと思ったんですが、型推論が複雑すぎって怒られてできませんでした。解決できた方はぜひpull requestを送ってみてはいかがでしょうか。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。