Ich versuche herauszufinden, was ich hier falsch mache. Habe mehrere Dinge ausprobiert, aber ich sehe dieses schwer fassbare Rechteck nie auf dem Bildschirm. Im Moment möchte ich nur ein einzelnes Rechteck auf dem Bildschirm zeichnen.Anfänger iphone Frage: Zeichnen eines Rechtecks. Was mache ich falsch?
Ich bekomme einen "ungültigen Kontext" für alles außer dem CGContextSetRGBFillColor(). Den Kontext danach zu finden, scheint mir etwas falsch zu sein, aber ich bin nicht zu Hause und schaue mir die Beispiele an, die ich letzte Nacht benutzt habe.
Habe ich noch etwas anderes vermasselt? Ich möchte wirklich zumindest so viel getan heute Abend bekommen ...
- (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;
}
Danke,
Sean.
Auch sollten Sie drawRect nicht direkt aufrufen, sondern stattdessen setNeedsDisplay aufrufen, damit das OS es aufnimmt und die Ansicht später neu zeichnet. – pgb
Ja. Stimmt. –
Okay, also sollte ich initWithCoder() nicht zum Zeichnen von Sachen verwenden. Aber beantwortet das tatsächlich meine Frage? Bewegt sich der CG-Code zu einer anderen Funktion, die einen Unterschied macht, ob das Rechteck gezeichnet wird oder nicht? Und für die Verwendung/nicht mit DrawRect, haben Sie es jetzt geschafft, mich zu verwirren. Willst du damit sagen, dass ich alle Parameter für mein Rechteck in drawRect setzen soll? Das scheint auch nicht richtig zu sein - was, wenn ich mehr als ein Rechteck zeichnen möchte? Wenn es eine einfache Beispielanwendung gibt, die * nur * ein Rechteck oder einen Kreis zeichnet, würde ich mir das mal ansehen. Sean. –