Cercando di capire cosa sto facendo male qui. Ho provato diverse cose, ma non ho mai visto quel rettangolo sfuggente sullo schermo. In questo momento, è tutto ciò che voglio fare: basta disegnare un singolo rettangolo sullo schermo.Domanda iphone per principianti: disegno di un rettangolo. Che cosa sto facendo di sbagliato?
Ricevo un "contesto non valido" su tutto tranne CGContextSetRGBFillColor(). Ottenere il contesto dopo mi sembra un po 'sbagliato, ma non sono a casa a guardare gli esempi che stavo usando la notte scorsa.
Ho incasinato qualcos'altro? Mi piacerebbe davvero ottenere almeno questa sera molto fatto ...
- (id)initWithCoder:(NSCoder *)coder
{
CGRect myRect;
CGPoint myPoint;
CGSize mySize;
CGContextRef context;
if((self = [super initWithCoder:coder])) {
NSLog(@"1");
currentColor = [UIColor redColor];
myPoint.x = (CGFloat)100;
myPoint.y = (CGFloat)100;
mySize.width = (CGFloat)50;
mySize.height = (CGFloat)50;
NSLog(@"2");
// UIGraphicsPushContext (context);
NSLog(@"3");
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, currentColor.CGColor);
CGContextAddRect(context, myRect);
CGContextFillRect(context, myRect);
}
return self;
}
Grazie,
Sean.
Inoltre, non chiamare direttamente drawRect, ma chiamare setNeedsDisplay, in modo che il sistema operativo lo prelevi e ridisegni la vista in un secondo momento. – pgb
Sì. Giusto. –
Ok, quindi non dovrei usare initWithCoder() per disegnare cose. Ma in realtà risponde alla mia domanda? Lo spostamento del codice CG su un'altra funzione può fare la differenza se il rettangolo viene disegnato o meno? E per quanto riguarda l'utilizzo/non utilizzo di drawRect, ora sei riuscito a confondermi. Stai dicendo che dovrei mettere tutti i parametri per il mio rettangolo in drawRect? Neanche questo sembra giusto, e se volessi disegnare più di un rettangolo? Se esiste una semplice app di esempio che * semplicemente * disegna un rettangolo o un cerchio o qualcosa del genere, vorrei dargli un'occhiata. Sean. –