Es entgeht mir, warum dieser Code innerhalb drawRect:
arbeitet:Warum funktioniert - [UIColor setFill] ohne Bezug auf einen Zeichnungskontext?
UIBezierPath *buildingFloor = [[UIBezierPath alloc] init];
// draw the shape with addLineToPoint
[[UIColor colorWithRed:1 green:0 blue:0 alpha:1.0] setFill]; // I'm sending setFill to UIColor object?
[buildingFloor fill]; // Fills it with the current fill color
Mein Punkt ist, erhält der UIColor
Objekt eine Nachricht setFill
und dann irgendwie der Stapel versteht, dass dies UIColor
jetzt die Füllfarbe wird, isn‘ t das nur komisch und falsch? Zumindest würde ich erwarten, füllen durch das Aufrufen von einigen CGContext
Methode ... Aber jetzt statt eine Farbe, UIColor
geht weiter und tut etwas, um den Kontext meiner Zeichnung zu ändern.
Könnte jemand erklären, was hinter den Kulissen passiert, weil ich hier total verloren bin?
Ich habe diese Referenzen überprüfen vor der Veröffentlichung:
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIColor_Class/Reference/Reference.html http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html
Dank einem Haufen @ Matt, vor allem für den Link, wird es für mich sehr nützlich sein :) –
Ihr Buch wirklich hilfreich war. Schließlich hat jemand die Konzepte von grafischen Kontexten und UIKit vs. CoreGraphics in einer Weise gebrochen, die Sinn ergab! Vielen Dank. – d512
Ich bin froh, dass ich helfen konnte! Ich fand das gleiche auch zunächst verwirrend, und deshalb habe ich mich sehr bemüht, es klar zu erklären. – matt