2009-04-15 13 views
0

Ich versuche zu entwerfen, wie man eine relativ einfache Anwendung implementiert.Ein visuelles Raster von "Schaltflächen" erstellen

Ich möchte ein Raster von "Quadrate" erstellen, die einen gesamten Bildschirm abdecken. Jedes Quadrat sollte die Fähigkeit haben, auf Berührungsereignisse zu reagieren, und dann einen Ein/Aus-Zustand haben. Wenn ich zum Beispiel ein "aus" -Feld berühre und dann den Finger über 10 andere Quadrate ziehe, möchte ich, dass sie alle angehen. Und umgekehrt.

Ich bin mir nicht sicher über den Speicheraufwand von nur ein Raster von 150 Schaltflächen erstellen. Auch Tasten haben keinen einstellbaren Zustand, von dem was ich sehen kann. Ich habe auch daran gedacht, UIView zu untergliedern und UIResponder-Methoden zu implementieren. Es fühlt sich an, als ob ich ein Array von Schaltflächen (oder eine Unterklasse von UIViews) erstellen sollte, aber ich bin mir nicht sicher, ob das möglich ist.

Ich gehe davon aus, dass ich sagen kann, auf welchem ​​Quadrat ich bin, indem ich den Ort des touchevent von den UIResponder-Methoden erhalte. Muss ich meine eigene Version eines myButton erstellen, indem ich UIView ablei- stung, eine Eigenschaft on/off state zusammen mit UIResponder-Methoden erzeuge und dann ein Array myButtons erzeuge?

Antwort

1

UISwitch ist das einzige, was dies im Moment tut, obwohl einige auch gute Erfahrungen mit dem UISegmentedControl gemacht haben.

Darüber hinaus müssen Sie den Stil/die Farbe einer normalen Schaltfläche oder eines Bildes im Code ändern, was viele Anwendungsentwickler tun, damit sie genau so aussieht und reagiert, wie sie es wollen.

+0

Wie ändern Sie den Stil/die Farbe des Schalters? In der Dokumentation sagen sie, dass die UISwitch-Klasse nicht anpassbar ist. – Craig

+0

Sorry, ich werde das klarstellen ... –

0

Wenn Sie nicht mehr von UIViews Ereignisbehandlungsfunktionen benötigen, erzielen Sie die beste Leistung, wenn Sie eine einzelne Ansicht verwenden und die Methoden -touchesBegan: withEvent, -touchesMoved und -touchesEnded verwenden. Verwenden Sie anschließend eine benutzerdefinierte drawRect-Methode, um Ihre individuellen Quadrate entweder in den Status "Ein" oder "Aus" zu zeichnen. Sie können auch Ebenen verwenden, aber wenn Sie 150 Ansichten erstellen möchten, müssen Sie nach Problemen suchen.

Verwandte Themen