motion-kitを使ってRubyMotionでAutoLayoutを利用する。
RubyMotionでAutoLayoutが使えないか調べたところ、motion-kitが良さ気だったので使ってみました。
AutoLayoutについて勉強したい人は「UIKit徹底解説 iOSユーザーインターフェイスの開発」がおすすめです。
- 作者: 西方夏子,丸山弘詩
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/06/13
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
motion-kitのページを見るとわかりますが、DSLでAutoLayoutを設定したLayoutクラスを定義します。
class HogeLayout < MotionKit::Layout def layout add UIButton, :button end def button_style title 'Press it!' size_to_fit constraints do left.equals(:superview).plus(10) right..equals(:superview).minus(10) top.equals(:superview).plus(10) height 100 end end end
あとはLayoutクラスのインスタンスをコントローラのビューに設定するだけでOK。
Layoutに追加したボタンなんかも簡単に参照できます。
class HogeController < UIViewController def loadView @layout = HogeLayout.new self.view = @layout.view @button = @layout.get(:button) end end
で、いい感じだなと思いながら触っていたのですが、UITableViewやUINavigationControllerなどのよく使うやつのサンプルがないというか、GitHubのIssueやStackOverflowに分散していたので、やりたいことを実装するのにけっこう苦労しました。
自分用のメモとして作ったサンプルをGitHubに上げてみたので、同じような境遇の人は使ってみてください。
AutoLayoutというと面倒くさくて嫌だという人が多いイメージがあるんですが、あまり自分はそう思うことは少なくて、なぜかなーと思っていました。
もともと自分がフリーハンドで図を書くのが苦手で、座標・幅・高さを数値指定して図を書きたいからじゃないかなと最近は思っています。 (ピッタリ数値が揃っているのがいい感じ)
なんとなく自分に合っているツールな気がするので、もう少し使ってみようかなと思います。