22

Ruby Motionがリリースされたばかりで、Screencastは、Interface Builderを使用してインターフェイスを構築し、RubyMotionプロジェクトに統合できるかどうかについては何も述べていないようです。そのようなことは可能ですか?それとも、iPhone / iPadのさまざまなコードを維持することは言うまでもなく、実際にすべてを手作業でコード化していますか?

私の担当者はrubymotionタグを作成するのに十分な高さではないので、必要に応じて助けてください。

4

6 に答える 6

38

RubyMotion 1.3は、フォルダー.xibに入れたファイルの自動コンパイルをサポートするようになりましたresources。したがって、ワークフローは次のようになります。

  1. XCodeを使用して.xibファイルを作成し(プロジェクトを作成する必要はありません。[ファイル]|[新規...]|[ファイル]を使用するだけです)、resourcesフォルダーに保存します。アウトレットはまだサポートされていないためtag、コードで使用する各コントロールのプロパティを慎重に設定してください(各コンポーネントのプロパティシートの[表示]ヘッダーの下にあります)。
  2. RubyMotionが.xibファイルのコンパイルを処理する.nibので、お楽しみください:)
  3. 派生クラスで、以下に示すように、UIViewControllerを使用してペン先をロードします。loadNibNamed:owner:options:
  4. viewDidLoad、を使用してさまざまなコンポーネントをフェッチし、を使用viewWithTag:してイベントハンドラを追加しますaddTarget:action:forControlEvents:(以下を参照)。
  5. ボーナスとして、次にxibを編集するときは、open resources/MyView.xibXCodeの適切な部分のみを起動します。

    class CalculatorViewController < UIViewController
        def loadView
            views = NSBundle.mainBundle.loadNibNamed "Keyboard", owner:self, options:nil
            self.view = views[0]
        end
    
        def viewDidLoad
            button = view.viewWithTag 1
            button.addTarget self, action:'buttonTapped:', forControlEvents:UIControlEventTouchUpInside
        end
    
        def buttonTapped(button)
            # ...
        end
    end
    
于 2012-05-10T13:17:53.920 に答える
6

はい、RubyMotionでInterfaceBuilderを使用できます。

リソースディレクトリにある.xibファイルは自動的に.nibファイルにコンパイルされ、プロジェクトで使用できます。

あなたがそんなに傾いているなら、アウトレットをサポートする方法さえあります:

https://github.com/yury/ib#readme
http://ianp.org/2012/05/07/rubymotion-and-interface-builder/

于 2012-08-29T22:32:06.597 に答える
1

しかし、本当にIBを使用したい場合は、おそらくそれを使用してUIをレイアウトし、

NSBundle.mainBundle.loadNibNamed(MY_NIB_NAME, owner:self, options:nil)

または類似。RubyMotionが名前マングリングを行うとは思わないので、明示的に設定することでIBでrubyクラスを使用できます。

于 2012-05-04T16:28:02.487 に答える
1

カプチーノにも同じ問題がありました。彼らはXcodeCappと呼ばれるツールを開発しました:https ://github.com/cappuccino/cappuccino/tree/master/Tools/XcodeCapp

アウトレットとアクションをIBで接続できる「ダミー」のObj-Cファイルを作成し、それらをバックグラウンドで自動的に解析し、IBを使用してカプチーノUIをレイアウトできるようにします。

RubyMotionでも同様のアプローチを取ることができるはずです(本当にIBを使用したい場合)。

  • ヨハネス
于 2012-05-07T14:29:41.260 に答える
1

おそらく、IBでインターフェイスを構築し、コマンドラインツールを呼び出してXIBをNIBにコンパイルすることができます。

IBOutletただし、IBはRubyソースファイルのトークンとトークンを解析できないため、アウトレットに接続したり、アクションを割り当てたりすることはできませんIBAction。通常、NIBロードコードは、NIBのロード後にこれらの接続を確立します。コードで、自分でそれを行う必要があります。

RubyMotionの2つの明白な弱点のうち、私にとってこれは最悪です。(もう1つは、コードが完成していないと、Cocoa APIへの書き込みが非常に面倒になることです。)

于 2012-05-04T18:21:19.193 に答える
0

それを作った人がいます:

これがチュートリアルビデオです:https ://www.youtube.com/watch?v = cOapNvehbg4

そしてこれはウェブサイトhttps://github.com/yury/ibです

Extra-Tipp:rubymotionのラッパーを見つけるには、このソースを確認してください

http://rubymotion-wrappers.com/

お役に立てれば

于 2014-03-21T23:55:53.047 に答える