mi sfugge il motivo per cui questo codice, all'interno drawRect:
, funziona:Perché - [UIColor setFill] funziona senza fare riferimento a un contesto di disegno?
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
Il mio punto è, l'oggetto UIColor
riceve un messaggio setFill
e quindi in qualche modo lo stack capisce che questo UIColor
sarà ora il colore di riempimento, isn' questo è solo strano e sbagliato? Per lo meno mi aspetterei di impostare il riempimento chiamando il metodo CGContext
... Ma ora invece di rappresentare un colore, UIColor
va avanti e fa qualcosa per cambiare il contesto del mio disegno.
Qualcuno potrebbe spiegare cosa sta succedendo dietro le quinte, perché sono completamente perso qui?
Ho fatto il check out questi riferimenti prima di pubblicare:
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
Grazie @ Matt gruppo, in particolare per il collegamento, sarà estremamente utile per me :) –
Il tuo libro è stato davvero utile. Finalmente qualcuno ha rotto i concetti di contesti grafici e UIKit contro CoreGraphics in un modo che aveva senso! Grazie. – d512
Contento di aver potuto aiutare! Anch'io ho trovato la stessa cosa confusa all'inizio, ed è per questo che ho messo così tanto impegno a spiegarlo chiaramente. – matt