動的に描画された複数のポリゴンを UIView に配置し、そのような各ポリゴンをドラッグ可能にしたいと考えています。動的に描画された各ポリゴンをサブビューに配置し、それを UIView に追加する必要があります (1 つの UIView は 1 つのサブビューしか表示できないため、これは不可能と思われます)、または各ポリゴンを異なる CALayer で描画し、タッチ イベントを各レイヤーにカスケードする必要がありますか?
2 に答える
あなたの仮定は間違っていると思います。UIView には、複数のサブビューを確実に含めて表示できます。(これが、サブビューが NSArray である理由です。サブビューが多数存在する可能性があるためです。) そうです、ポリゴンごとに新しい UIView を作成し、それらをサブビューとしてメイン ビューに追加する必要があります。
複数のドラッグ可能なポリゴンをどのように描画しますか? iOS 開発者として登録している場合は、Apple 開発者リソースにアクセスして、WWDC2011 セッション ビデオを検索できます。WWDC2001 のセッション 118「Making the Most of Multi-Touch on IOS」で、Ken Kocienda がジェスチャ認識機能を使用してタッチを感知するアプリを実演しています。アプリのコードは公開されていないと思いますが、彼は詳しく説明しています。
それは、ポリゴンの数とそれらがどれほど動的であるかによって異なります。それらの数が多い場合、何百もの UIView を持つことはコストがかかります。その場合は、CALayers を使用して位置を手動で追跡する方がよいでしょう。ほんの一握りのポリゴンしかない場合は、人生を複雑にせず、UIView を使用してください。