2

GMGridViewをアプリケーションに統合する MonoTouch バインディング プロジェクトに取り組んでいます。空のグリッド ビューを正常にロードできましたが、グリッド アイテムをロードできませんでした。MonoTouch と Objective C のコードに何時間も費やした後、System.Drawing.SizeF バインディングが CGSize に正しく変換されていないことが判明しました (つまり、SizeF(140f, 110f) は CGSize(140, 0) に変換されています - 高さの値が失われています)。 .

Objective C の定義

    - (CGSize)GMGridView:(GMGridView *)gridView sizeForItemsInInterfaceOrientation:(UIInterfaceOrientation)orientation;

モノタッチ製本

    [Abstract, Export ("GMGridView:sizeForItemsInInterfaceOrientation:")]
    System.Drawing.SizeF SizeForItemsInInterfaceOrientation (GMGridView gridView, UIInterfaceOrientation orientation);

バインドが間違っているのか、それとも既知のバグなのか疑問に思っていましたか? また、高さの値の追加のコールバックを作成する以外の解決策は何ですか。

バインディングとテスト コードはここに投稿されています: GMGridMono

ご検討いただきありがとうございます。

4

1 に答える 1

1

CGSize を返すメソッドへのバインディングで同じ問題が発生しました。モノタッチ V5.2.12。シミュレーターでは発生しますが、デバイスでは発生しません。mono アプリケーションからメソッドへの直接呼び出しは正常に機能しますが、メソッドがバインドされたライブラリから mono コードへのコールバックとして使用される場合、返される高さの値は正しくなく、初期化されているように見えます。

于 2012-06-22T12:32:49.280 に答える