2009-04-15 5 views
0

私は、比較的シンプルなアプリケーションを実装する方法を設計しようとしています。「ボタン」のビジュアルグリッドを設計する

画面全体をカバーする「四角形」のグリッドを作成したいと考えています。各四角形には、タッチイベントに応答してからオン/オフ状態にする能力が必要です。たとえば、「オフ」の四角形にタッチして10個の他の四角形に指をドラッグすると、それらをすべてオンにします。およびその逆。

150個のボタンのグリッドを作成するだけのメモリオーバーヘッドはわかりません。また、私は見ることのできる状態から、ボタンには設定可能な状態がありません。私はUIViewのサブクラス化とUIResponderメソッドの実装も考えていました。ボタンの配列(またはUIViewのサブクラス)の配列を作成する必要があるように感じますが、可能かどうかはわかりません。

私はUIResponderメソッドからtoucheventの位置を取得することで私が何をしているのかを知ることができると仮定しています。 UIViewをサブクラス化してmyButtonの独自のバージョンを作成し、UIResponderメソッドと一緒にon/off状態のプロパティを作成し、次にmyButtonの配列を作成する必要がありますか?

答えて

1

UISwitchはこの時点でこれを行う唯一のものですが、UISegmentedControlを使ってこのような経験を積んだ人もいます。

これ以外にも、多くのアプリケーション開発者が行うように、通常のボタンや画像のコード/スタイルを変更する必要があります。

+0

スイッチのスタイル/色をどのように変更しますか?ドキュメントでは、UISwitchクラスはカスタマイズできないと言います。 – Craig

+0

申し訳ありませんが、私はそれを明らかにするでしょう... –

0

UIViewのイベント処理機能がさらに必要な場合を除き、単一のビューを使用して-touchesBegan:withEvent、-touchesMoved、および-touchesEndedメソッドを使用すると、最高のパフォーマンスが得られます。次に、カスタムdrawRectメソッドを使用して、オンまたはオフのいずれかの状態で個々の四角形を描画します。レイヤーを使用することもできますが、150のビューをレイアウトしようとすると問題が発生することがあります。

関連する問題