2

iOSの「クリック可能な」領域はボタンであるべきですか、それとも一般的なUIView、UIImageなどを使用しても問題ありませんか?

アイコン、境界線、影などを含むテキストのブロックがあるとします。ビルボードみたいですね。それを実装する最良の方法は何ですか?カスタムUIButtonを使用してサブビューを追加するだけですか、それとも汎用UIViewを作成するだけですか?

どんな考えでも大歓迎です!

4

3 に答える 3

2

UIGestureRecognizerにs を追加するだけで、UIViewそれらを処理できます。ドキュメントはこちらに、チュートリアルはこちらにあります。

于 2012-09-12T06:53:40.037 に答える
1

おそらく、複数のサブビューを含むビューの場合、UIViewサブクラスを使用する必要があります。UIButtonビューの追加、状態の変更、有効化/無効化はビュー全体(サブビューを含む)に奇妙なことをする可能性があります。独自のUIViewサブクラスを使用すると、表示される内容が状態の変化によっていじられないようになり、完全に制御できるようになります。オーバーライドできます

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

カスタムビューへのタッチをインターセプトします。これを行う場合は、userInteractionEnabledフィールドをtrueに設定する必要があることに注意してください。

追記:質問の要素の1つとして影について言及しました。CALayerこれを行うために使用している場合は、さまざまな状態を処理するためのレイヤーのセットが非常に複雑であるため、UIButtonの使用は絶対に避けてください。

于 2012-09-12T07:17:17.460 に答える
-1

ターゲット領域が十分に大きい場合は、クリック可能なビューの上に透明な UIButton (ボタンの種類をカスタムに切り替えますが、画像は提供しません) を配置して、タップをインターセプトできます。

于 2012-09-12T07:14:15.300 に答える