0
私は何をしているのですか?カレンダー用のコードをダウンロードしました。今はタイルに画像を表示したいのです。CGContextRefの画像を表示
私はそのために私はCGImageRefに画像オブジェクトを変換していますので、タイルの上に画像を表示したいどのような私は他の条件でコード
- (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);
}
でショーをしようとしています。
私を助けてください。
これは、同じ方法で行っても、他の方法で行ってもわかりません。これを行う方法を提案してください。
Thanx a lot。
[OK]をありがとう、これもdrawInRectとdrawAtPointを動作しません。 – Ishu
ボットイメージとデータプロバイダはオートリアーゼオブジェクトです。 – Ishu
いいえ、自動リリースされていません。ドキュメントをもっと慎重に読んでください。ところで、現在のコンテキストではないコンテキストを使用している場合は、プッシュしてからポップする必要があります。 –