RubyMotionはいいんだけど,UIをコードで作るのはめんどくさい.
そのため,InterfaceBuilderで作りたい.
RubyMotionをアップデート
RubyMotionの進化が早くて,もう1.3のアップデートが来てます.
このエントリーは1.3にアップデートしてからやってね.
$ sudo motion update
本題
やってみます.まずはひな形作成.
$ motion create IB
$ cd IB
app/app_delegate.rb
を編集します.
class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.rootViewController = NSBundle.mainBundle.loadNibNamed(
'MyView',
owner: self,
options: nil).first
@window.rootViewController.wantsFullScreenLayout = true
@window.makeKeyAndVisible
true
end
end
こんな感じで,MyViewっていうNibを読み込んでやることにします.
InterfaceBuilderでUI配置
おもむろにXCodeをたちあげて,(すでに開いている人は開いてるProjectを閉じろ!)File>New>File(Cmd + N)を選んで新規ファイル作成する.
iOSのUser InterfaceのEmptyを選んで,resources/MyView.xib
として保存する.
このままだと,ただの方眼紙なので,オブジェクトを追加していきます.
ObjectLibrary(Cmd+Shift+Alt+3)からViewControllerを追加.
CustomClassの所で,MyViewController
とする.
ObjectLibraryからViewを追加.
ObjectLibraryからButtonとLabelを追加.
この部分が重要で、それぞれのTagに1とか2とかつけます
保存して終了.
UIViewController
次にapp/my_view_controller.rb
を作成します.
class MyViewController < UIViewController
def viewDidLoad
@button = view.viewWithTag 1
@label = view.viewWithTag 2
@button.addTarget(
self,
action:'onClicked',
forControlEvents:UIControlEventTouchUpInside)
end
def onClicked
@label.text = "Clicked"
end
end
1のTagを付けたのをbuttonとして,クリックのイベントをonClickedメソッドに登録.
2のTagを付けたのをlabelとして,クリックされた時に変更したりするようにしました.
ビルド&実行
$ rake
でビルドしてシミュレータが立ち上がります.
押します.
変わります!
出来ました!
0 comments:
コメントを投稿