UIButton und setImage: nicht arbeiten konsequent - inkonsequent
Ich habe einen UIButton auf einer UIView. Ich möchte programmatisch herauszufinden, welches Bild zur Anzeige innerhalb der Taste auf, wenn die Ansicht angezeigt wird. Ich habe überschrieben, die drawRect-Methode in der UIView und verwendet eine setImage zur Anzeige des gewünschten Bildes. Allerdings, wenn die Ansicht zeigt, manchmal zieht Sie das gewünschte Bild, und manchmal nicht. Ich muss berühren Sie eine beliebige Stelle in der Ansicht für das Bild auf der Schaltfläche angezeigt wird. Bitte um Hilfe!!
Hier ist die drawRect-Methode für die Ansicht.
- (void)drawRect:(CGRect)rect
{
[myButton setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
}
Alles ist verdrahtet IB richtig. Ich verstehe nicht, warum das Bild erscheint/erscheint nicht konsequent. Dank sehr viel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie wirklich nicht wollen, zu überschreiben drawRect.
Die richtige Sache zu tun ist, implementieren Sie eine UIViewController, und überschreiben viewWillAppear:.
groundhog hat die richtige Antwort, aber ich möchte nur erklären, was eigentlich passiert ist mit dem code, und warum es manchmal funktioniert.
Den
drawRect
- Methode wird jedesmal aufgerufen, wenn das system will, dass Ihr view-Objekt zur Anzeige von sich auf dem Bildschirm. Einstellung der Bild-Taste in derdrawRect
Methode wird ändern Sie die Schaltfläche Bild, aber da das system ist bereits in den Prozess der Zeichnung auf dem Bildschirm, Sie werden nicht sehen, die änderung, bis die nächsten Zeit die Ansichten müssen neu gezeichnet werden. In diesem Fall, wenn Sie touch irgendwo anders in der Ansicht.viewWillAppear
, aber wenn Sie eine andere Initialisierungs-Methode, können Sie es tun, gibt es statt. Solange Sie nicht setzen keine Initialisierung code in derdrawRect
Methode, Sie sollten in Ordnung sein.Danke für die Erklärung. Leider, dieser code ist Teil eines größeren Projekts mit einem anderen Entwickler. Ich KANN es NICHT ändern, die aktuellen UIView zu einem UIViewController. Stattdessen wechselte ich die Schaltfläche Bild in einer anderen Art und Weise. Ich habe die button-Zustand kurz vor, bevor Sie die UIView, um die Untersicht des besitzenden ViewController. dh: gab ich die
Nur vor, bevor Sie meine UIView als Untersicht. ie:
offensichtlich myButton ist Teil myView. Vielen Dank für den Beistand.