• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[iPhone] drawRect direkt aufrufen.

FloydThreepwood

Stechapfel
Registriert
19.01.06
Beiträge
161
Hi,

Ich habe mir zwar das Programm GLPaint angesehen, halte es aber für zu unhandlich, ich würde das ganze also durch eine Hand voll Quartz Methoden ersetzen wollen. Allerdings kann ich drawRect nicht direkt aufrufen (context bleibt nil). Push & PopContext machen ja nun nichts anderes als den Stack zu verwalten, allerdings habe ich keine Ahnung wie ich es hinkriege den Context auf das Bildschirm Bitmap zu zeichnen...

Ist es möglich einen View direkt zeichnen zu lassen und nicht auf drawRect angewiesen zu sein? Oder muss ich in jedem Fall einen OpenGL View benutzen?

MFG Jan
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
RTFM:

"Normal geometry changes do not require redrawing the view. Therefore, if you alter the appearance of a view and want to force it to redraw, send setNeedsDisplay or setNeedsDisplayInRect: to the view. You can also set the contentMode to UIViewContentModeRedraw to invoke the drawRect: method when the bounds change; otherwise, the view is scaled and clipped without redrawing the content."

Alex
 

FloydThreepwood

Stechapfel
Registriert
19.01.06
Beiträge
161
Gelesen hab ich das schon, aber ein asynchroner Aufruf erscheint mir ein Problem zu sein, denn der Zeitpunkt des draw rect Aufrufs muss nicht vor dem nächsten touchesMooved passieren. Obwohl ich die Daten ja chachen kann, kann das zu sehr unschönen interface effekten führen. Direkter wär mir daher lieber!

Nachtrag: Ich benutze die set Methoden bereits in anderem Umfeld. Cocoa versucht immer mehrere punktuirte Aufrufe in einen mit großem rect zu wandeln, dieser effect ist ohnehin schon contraperformant, aber für einen drawview schlicht unnütz, hier wird teilweise erst nach der 3. Richtunhgsänderung nachgezeichnet.

MFG Jan
 
Zuletzt bearbeitet:

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Gelesen hab ich das schon, aber ein asynchroner Aufruf erscheint mir ein Problem zu sein, denn der Zeitpunkt des draw rect Aufrufs muss nicht vor dem nächsten touchesMooved passieren. Obwohl ich die Daten ja chachen kann, kann das zu sehr unschönen interface effekten führen. Direkter wär mir daher lieber!
Lieber oder getestet?

Ansonsten gibt es wenigstens bei Cocoa -display (NSView).

Nachtrag: Ich benutze die set Methoden bereits in anderem Umfeld. Cocoa versucht immer mehrere punktuirte Aufrufe in einen mit großem rect zu wandeln, dieser effect ist ohnehin schon contraperformant,
Tatsächlich? Gilt das auch dann, wenn die Dirty-Rects sich massiv überschneiden?

Ich wäre mit derlei Schlussfolgerungen vorsichtig …

Davon abgesehen steht es dir frei, nur die Dirty-Rects zu zeichnen:
http://developer.apple.com/DOCUMENT....html#//apple_ref/doc/uid/TP40002978-CH11-SW4

aber für einen drawview schlicht unnütz, hier wird teilweise erst nach der 3. Richtunhgsänderung nachgezeichnet.

MFG Jan