Was ich mache, habe ich einen Code für den Kalender heruntergeladen jetzt möchte ich Bilder auf seinen Kacheln anzeigen (für Datum).Bild in einem CGContextRef anzeigen
Was ich versuche, zeigt im Code
- (void)drawTextInContext:(CGContextRef)ctx
{
CGContextSaveGState(ctx);
CGFloat width = self.bounds.size.width;
CGFloat height = self.bounds.size.height;
CGFloat numberFontSize = floorf(0.3f * width);
CGContextSetFillColorWithColor(ctx, kDarkCharcoalColor);
CGContextSetTextDrawingMode(ctx, kCGTextClip);
for (NSInteger i = 0; i < [self.text length]; i++) {
NSString *letter = [self.text substringWithRange:NSMakeRange(i, 1)];
CGSize letterSize = [letter sizeWithFont:[UIFont boldSystemFontOfSize:numberFontSize]];
CGContextSaveGState(ctx); // I will need to undo this clip after the letter's gradient has been drawn
[letter drawAtPoint:CGPointMake(4.0f+(letterSize.width*i), 0.0f) withFont:[UIFont boldSystemFontOfSize:numberFontSize]];
if ([self.date isToday]) {
CGContextSetFillColorWithColor(ctx, kWhiteColor);
CGContextFillRect(ctx, self.bounds);
} else {
// CGContextDrawLinearGradient(ctx, TextFillGradient, CGPointMake(0,0), CGPointMake(0, height/3), kCGGradientDrawsAfterEndLocation);
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("left-arrow.png");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);
//UIImage* image = [UIImage imageNamed:@"left-arrow.png"];
//CGImageRef imageRef = image.CGImage;
CGContextDrawImage(ctx, CGRectMake(8.0f+(letterSize.width*i), 0.0f, 5, 5), image);
//im.image=[UIImage imageNamed:@"left-arrow.png"];
}
CGContextRestoreGState(ctx); // get rid of the clip for the current letter
}
CGContextRestoreGState(ctx);
}
In anderen Zustand i Bilder auf der Fliese zeigen wollen, so für das i Bildobjekte in der CGImageRef bin zu konvertieren.
Bitte helfen Sie mir.
Ich bin mir nicht sicher, ob dies auf die gleiche Weise oder auf andere Weise getan werden würde, bitte schlagen Sie Ihren Weg vor, dies zu tun.
Vielen Dank.
Ok Danke, aber das auch nicht funktionieren drawInRect und drawAtPoint. – Ishu
Und Bot Bild-und Datenanbieter sind Autorealease-Objekte. – Ishu
Nein, sie sind nicht autoreleased. Lesen Sie die Dokumentation sorgfältiger. Übrigens, wenn du einen Kontext verwendest, der nicht der aktuelle Kontext ist, musst du ihn drücken und dann loslassen. –