2

5列のクライアントをiOSプラットフォームに移植しようとしています。もともと私はそれをJavaで設計しました。表示する必要のある15*15フィールドがあります。PCでは、自分自身だけに責任を持つ個々のオブジェクト(イベント処理など)でフィールドを表します。モバイルプラットフォームで同じことを行うのが良いかどうかはわかりません(つまり、225個のジェスチャレコグナイザーを使用することはあまり有望ではないようです)。これらすべてのフィールドを1つの大きなビューにマージする別のアプローチがあります。このビューは、画面座標を使用して計算を行うことにより、描画とイベント処理を担当します。個人的には、最初のアプローチが好きです。なぜなら、それはよりOOベースだからです。パフォーマンスが第一である場合、iOSでどちらを選ぶべきだと思いますか?前もって感謝します!

4

1 に答える 1

4

パフォーマンスが主要な場合は、カスタム描画ビューを使用できます。UIGestureRecognizerを使用してCGPointを取得し、UIViewを使用して影響を受ける領域(正方形)のみを再描画します。

- (void)drawRect:(CGRect)rect

その数学をするのは簡単です。

ただし、コントロールと各セルの複雑さによっては、そのコードを維持するのが難しい場合があります。サブビューを使用して階層化されたコントロールを作成し、各サブビューがジェスチャの描画、処理などを担当するようにすることで、はるかに保守が容易になり、コードがよりクリーンになります。より多くのオーバーヘッドがありますか?はい。それは問題になりますか?おそらくそうではありません。だから、あなたはそれを試して測定する必要があります。サブビューとそれらのサブビューのそれぞれがジェスチャの描画と処理の方法を知っている集約ビューを作成するのが一般的です-それがココアタッチのすべてです。

于 2012-07-08T14:20:07.103 に答える