2009-08-19 11 views
0

Ich habe eine Ansicht erstellt und möchte später Text hinzufügen oder hinzufügen, basierend auf dem Zustand der App, wenn der Benutzer es berührt.iPhone drawRect wiederverwenden für das Zeichnen in der Ansicht

Kann ich dies mit drawRect tun, da ich mehrere mögliche Zeichen/Text-Elemente dafür habe? Wenn ja, wie rufen Sie es auf? Wenn nicht, wo sollte ich danach suchen?

Vielen Dank im Voraus,

Steve

Antwort

0

Der beste Weg, einfache Objekte, wie Texte, Bilder aus Dateien oder, sagen wir, einfarbige Rechtecke zu zeichnen ist einfach diese Elemente als Subviews von hinzufügen deine Ansicht. Im Allgemeinen ist es viel einfacher, sich nie um die Methode drawRect: zu kümmern, es sei denn, Sie müssen etwas tun, was Sie nicht tun können, indem Sie Unteransichten hinzufügen. Wenn Sie beispielsweise ein Kreisdiagramm basierend auf einigen dynamischen Daten erstellen möchten, ist es möglicherweise sinnvoll, eigene Zeichenroutinen zu schreiben. Wenn Sie nur mit Ansichten und Unteransichten arbeiten, wird drawRect: immer automatisch aufgerufen, wann immer es angemessen ist, auch wenn Sie Eigenschaften dieser Objekte ändern, die einen visuellen Unterschied erfordern, z. B. Ändern der Schriftfarbe oder des Pixels Koordinaten einer Unteransicht.

Hier ist ein kleines Beispiel dafür, wie man zwei Subviews zu einer Ansicht hinzufügen kann, wie in den loadView Verfahren eines View-Controller:

CGRect helloFrame = CGRectMake(10, 10, 100, 50); 
UILabel* helloLabel = [[UILabel alloc] initWithFrame:helloFrame]; 
helloLabel.text = @"hello,"; 
helloLabel.textColor = [UIColor redColor]; 
[self.view addSubview:helloLabel]; 

CGRect worldFrame = CGRectMake(60, 60, 100, 50); 
UILabel* worldLabel = [[UILabel alloc] initWithFrame:worldFrame]; 
worldLabel.text = @"world!"; 
worldLabel.textColor = [UIColor orangeColor]; 
[self.view addSubview:worldLabel]; 
+1

Zur Verteidigung meiner Antwort (weil es jetzt negative Stimmen hat): Die Frage klingt so, als ob SE Powell an drawRect denken würde: als die einzige Möglichkeit, eine benutzerdefinierte Ansicht zu erstellen, was ein schlechtes Missverständnis ist. Meine Antwort ist der Versuch, das Gesamtbild zu betrachten und die Antwort zu geben, die auf lange Sicht als Codierungstechnik am nützlichsten sein wird. – Tyler

1

Sie eine UIView ungültig machen können

[myView setNeedsDisplay]; 
durch den Aufruf

Mit dem OS-Aufruf drawRect für myView zu einem geeigneten Zeitpunkt.

Verwandte Themen