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];
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