1

描画に関しては、CPView、CALayer、CPImageViewの違いを理解するのに少し苦労しています。

JavaScript については十分な知識がありますが、Objective C と cocoa の経験はありません。

私はユニプロジェクト用の小さなアプリを構築しています。これには、画像をドラッグアンドドロップし、線やその他の形状を描画してそれらをリンクする必要があります。このようなことを行うアプリがgomockingbirdです。

私の質問は、上記のどれをドロップして使用する必要があるかということです。cappucino.org の Web サイトでFloorPlanの例を見てきましたが、 CPImageView オブジェクトを使用して項目をドラッグ アンド ドロップしています。CALayer はこの種の操作に最適化されているというチュートリアルを読んだので、どれを使用すればよいかわかりません。

例やチュートリアルへのリンクは大歓迎です。

ありがとう。

4

1 に答える 1

1

一般に、CALayer は古く、使用すべきではありません。

CPView は、画面上の最も基本的な UI 要素です。ほぼすべてがビュー (ウィンドウ、画像ビュー、ボタンなど) によって支えられています。ビューには、任意の数のサブビューと 1 つのスーパービューを含めることができます。

ビュー (つまり、CoreGraphics またはキャンバスのような API) でカスタム描画が必要な場合は、UIView または UIView の子孫をサブクラス化する必要があります。その後、オーバーライドします

- (void)drawRect:(CGRect)aRect;

UIImageView は UIView のサブクラスです。唯一の目的は、画面に画像を表示することです。

あなたのプロジェクトでは、次のことを行うと思います: ユーザーが操作する「キャンバス ビュー」を作成します。必要に応じて UIImageViews をキャンバスにドラッグ アンド ドロップします。次に、線画については、キャンバス ビュー自体に各画像から線を描画させます。

カスタム描画を行う大きなビューは遅くなる傾向があることを覚えておくことが重要です。ユーザーが描画しているときに速度が遅いことに気付いた場合は、すべての画像の下に一時的な描画ビューを挿入することをお勧めします。次に、ユーザーが描画線をドロップすると、「キャンバス ビュー」が更新され、一時的な描画ビューがビュー階層から削除されます。

それが少し役立つことを願っています!

于 2012-11-03T16:45:22.663 に答える