Wie kann ichWie Aufruf - (void) drawRect: (CGRect) rect
-(void)drawRect:(CGRect)rect
in https://github.com/stkim1/MTImageMapView/blob/master/MTImageMapView/MTImageMapView.m
von einer anderen UiViewController
Periodisch Anruf mit NSTimer
Wie kann ichWie Aufruf - (void) drawRect: (CGRect) rect
-(void)drawRect:(CGRect)rect
in https://github.com/stkim1/MTImageMapView/blob/master/MTImageMapView/MTImageMapView.m
von einer anderen UiViewController
Periodisch Anruf mit NSTimer
Vom documentation:
Diskussion
Die Standardimplementierung dieser Methode tut nichts. Unterklassen , die Technologien wie Core Graphics und UIKit zum Zeichnen ihrer Inhalt der Ansicht verwenden, sollten diese Methode überschreiben und ihre Zeichnung Code dort implementieren. Sie müssen diese Methode nicht überschreiben, wenn Ihre Ansicht den Inhalt auf andere Weise auf setzt. Sie müssen diese Methode beispielsweise nicht überschreiben, wenn in Ihrer Ansicht nur eine Hintergrundfarbe angezeigt wird oder wenn in der Ansicht der Inhalt direkt mit dem zugrunde liegenden Ebenenobjekt festgelegt wird.
...
Wenn Sie
UIView
direkt Unterklasse, Ihre Implementierung dieser Methode rufen nicht super benötigt. Wenn Sie jedoch eine andere Sichtklasse unterklassifizieren, sollten Sie Super an einem bestimmten Punkt in Ihrer Implementierung aufrufen.Diese Methode wird aufgerufen, wenn eine Ansicht zuerst angezeigt wird oder wenn ein Ereignis auftritt, das einen sichtbaren Teil der Ansicht ungültig macht. Sie sollten niemals diese Methode direkt anrufen. Um einen Teil Ihrer Ansicht ungültig zu machen, , und bewirken Sie, dass dieser Teil neu gezeichnet wird, rufen Sie stattdessen die Methode
setNeedsDisplay
oder auf.
JA Ich fand die Lösung, die ich am Ende einer drawrect
Funktion eine Funktion mit Timer nenne und ruft setNeedsDisplay()
darin
Warum Sie() als Standard-Methode aufrufen müssen drawRect und ruft automatisch während initialisieren. Bitte geben Sie an, warum Sie drawtract() regelmäßig aufrufen müssen. – CodeChanger
Haben Sie eine Instanz dieser Kartenansicht in einer UIView auf Ihrem UIViewController? Rufen Sie einfach 'setNeedsDisplay' in dieser Ansicht auf, und es wird sich um das Neuzeichnen kümmern. Sie sollten nicht direkt auf drawRect zugreifen - es wird von der steuernden Klasse wie erforderlich aufgerufen – Russell
CodeChanger- Eigentlich wollte ich eine Positionsmarker im Zustand anzeigen, und ich muss Marker in einen anderen Zustand mit jeder Sekunde aktualisieren, die ich habe machte eine Logik, um eine Positionsmarkierung zu zeigen und zu welchem Zustand sollte es als nächstes gehen, aber kann die Ansicht nicht aktualisieren – rva