問題タブ [rubymotion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - RubyMotionを使用してUISliderがタップされたことを検出する方法は?
私はUISliderを持っています:
ユーザーがいつクリックしたかを検出して、どこにあるかを知りたいです。UITapGestureRecognizer私は何かを使用する必要があると思いますが、私は非常に新しく、これらすべてについて無知です。
これでスライダーがいつタップされたかを知ることができます:
...しかし、それは親指でしか機能しないので、あまり役に立ちません。スライダーのタップをキャッチしたいです。
ドキュメントへのポインタまたはリンクをいただければ幸いです。
関連する質問/回答ですが、objective-c: Clickable UISliderを使用
iphone - 伸縮しないように UISlider の MinimumTrackImage を設定する方法は?
XCode を更新して以来MinimumTrackImage、UISlider の は、以前は希望どおりにクリッピングしていたのに、今では伸びています。のMaximumTrackImage動作は変わりませんでした。
MinimumTrackImage伸びないようにするにはどうすればいいですか?ここでは rubymotion を使用していますが、obj-c を使用したソリューションでもかまいません。
ios - RubyMotionアプリでFacebookSDKを使用する
Facebook SDKをrubymotionアプリに含めようとすると、次のエラーが発生します。
アーキテクチャi386の未定義のシンボル:
"_ OBJC_CLASS _ $ _ ASIdentifierManager"、参照元:FacebookSDK(FBSettings.o)のobjc-class-ref "_OBJC_CLASS _ $ _ SLComposeViewController"、参照元:FacebookSDK(FBNativeDialogs.o) "_SLServiceTypeFacebook "、参照元:+ [FBNativeDialogs composeViewControllerWithSession:handler:] in FacebookSDK(FBNativeDialogs.o)ld:アーキテクチャi386 clangのシンボルが見つかりません:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用)レーキが中止されました!コマンドがステータス(1)で失敗しました:[/ Applications / Xcode.app / Contents / Developer ...]
cocoapod「Facebook-iOS-SKD」で両方追加してみました
そしてベンダープロジェクトとして
私はここで何が間違っているのですか?正しくリンクするにはどうすればよいですか?
objective-c - Facebook SDK が iOS SDK で間違った UID を返す
(これは RubyMotion ですが、Objective-C とまったく同じはずです。)
ここでグラフ API エクスプローラー (https://developers.facebook.com/tools/explorer) でクエリを実行すると、適切な結果が返されます (注: ランダムな UID であり、実際のものではありません)。
戻り値:
ただし、Facebook SDK を使用する iOS では、同じクエリを実行します。
これは以下を出力します:
uid は、私が照会したものとは異なることに注意してください。
質問: このような単純なクエリで、Facebook iOS SDK では間違った結果が返されるのに、Graph API Explorer では返されないのはなぜですか?
ios - RubyMotion で現在の月末を Time オブジェクトとして取得する
rubymotion で現在の暦月の終わりを Time オブジェクトとして取得する必要があります。
したがって、2012 年 10 月の現在の時刻を考えると、現在のTime日付に関係なく、 のインスタンスとして 2012 年 10 月 31 日 真夜中 が必要になります。
どうすればいいですか?
編集
回答に感謝しますが、言い忘れたことの 1 つは、申し訳ありませんが、RubyMotion を使用していて、Date および DateTime オブジェクトが利用できないことです。
基本的に、あなたrequireがルビーでロードしたものには、私はアクセスできません。
ios - iOS の日付からタイム ゾーン オフセットを削除する
現在のタイムゾーンを取得してNSDate.date削除し、GMT 日付として解析する必要があります
戻り値2012-10-11 11:27:09 -0700
私が必要とするのはこれです:2012-10-11 11:27:09 +0000
c++ - RubyMotion のサードパーティ C++ ライブラリ
RubyMotion を使用して iOS 開発用のサードパーティ C++ ライブラリをコンパイルしようとしています。.h および .mm ファイルの形式で、ライブラリの周りに Objective-C ラッパーがありますが、それらをどうするかわかりません。
それらは my_app/vendor/my_lib/ にあると仮定していますが、RubyMotion にファイルについてどのように伝えることができますか?
Rakefile のプロジェクトにライブラリを追加しました。
これにより、.h/.a ファイルが取得されます。RubyMotion は .the mm (および対応する .h) ファイルも取得しますか? それとも、このファイルにラッパーとしてフラグを付ける必要がありますか?
ios - Rubymotion と構造体へのポインタ
Cocos2d の Rubymotion 実装である cocosmotion を試しています。私が取り組んでいるチュートリアルには、構造体を引数として取るメソッドがあります。Rubymotion と MacRuby のドキュメントを参照しましたが、必要な構造体に基づいて新しいオブジェクトをインスタンス化する方法がわかりません。主な問題は、構造体が小文字で始まり、それを操作しようとするとRubyがそれをローカル変数と見なすことだと思います。
ここに記載されているのと同じ問題があると思います: https://github.com/MacRuby/MacRuby/issues/121
解決策または回避策はありますか?
構造体は、Objective-C で次のように定義されます。
呼び出そうとしているメソッドは、ccTexParams 構造体を想定しています。
これが私が試したことです:
この方法で試してみると:
実行時エラーは次のとおりです。
私も試しました:
エラー:
また、CcTexParams、_ccTexParams、およびさまざまな方法で ccTexParams として置き換えようとしましたが、動作するバージョンはありません。
私はこれを試しました:
RubyMotion が不平を言うexpected an instance of Pointer, got '#<CcTexParams minFilter=9987 magFilter=9729 wrapS=33071 wrapT=33071>' (CcTexParams) (TypeError)
[GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE]メソッドに直接渡すだけにしてみました。それはそれを訴えexpected a Pointer but got an Arrayます。
おそらくccTexParams、libの名前を次のように変更する必要がありCCTexParamsますか?それは理想的な回避策ではないと思います。
sqlite - Rubymotion で SQLite を使用する
Rubymotion で C レベルの SQLite API を使用したいのですが、可能であれば SQLite の dylib とヘッダー ファイルをインクルードする方法がわかりません。
私が理解しているように、dylibは次の方法で含める必要があります。
しかし、それだけでは十分ではありsqlite3_openません。関数はまだ見つかりません。ヘッダーファイルを何らかの方法で指定する必要があると思います。
PS FMDB を使用して同じ機能を実現できることはわかっていますが、C ライブラリを直接使用することについて疑問に思っています。
ios - RubyMotion で、戻るリンクに触れたときにリストの更新をキャンセルするにはどうすればよいですか?
私は RubyMotion を初めて使用し、いくつかの API を理解するのに苦労しています。
私のアプリは非常に基本的な一連の UITable リストです。アイテムを選択すると、そのアイテムのリストに移動します。これは、新しいコントローラーを押すことによって実現されます。
これはすべて正常に動作しますが、リスト コントローラーの 1 つの viewDidLoad メソッドで、インターネットからリストのデータを更新するメソッドを呼び出しています。非同期ディスパッチ キューで更新を実行しているので、viewDidLoad は次のようになります。
私が抱えている問題は、このリストに移動し、更新が完了するのを待ってから (デバッグログのテーリングを介して)、戻って別のリストに戻る場合です。更新が完了すると、セグメンテーション違反であることが確実に通知された説明のないエラーでアプリケーションがクラッシュします。
したがって、コントローラを閉じる前にリフレッシュが完了するのを待つか、コントローラを閉じる前に Dispatch キューからリフレッシュ スレッドを強制終了する必要があると確信しています。だから私の質問は:
左上を押して戻って現在のコントローラーを閉じるときに、「戻る」イベントをどのようにキャッチしますか? コントローラーを押すとこの機能を無料で利用できますが、バックイベントをキャッチする方法がわかりません。
コントローラーを閉じる前に更新スレッドを強制終了するか、それが完了するのを待つだけの正しいアプローチはどれですか? それを殺すのは少し危険に思えます。おそらく、実行していることを終了して終了するように要求するメッセージを送信し、OK 完了という応答を待つことができます。
質問 2 の正しい答えをどのように達成しますか? ディスパッチされたスレッドからメインスレッドにメッセージを送り返す方法を知っていれば、これは少し簡単になります。