私は次のことをしました:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
UIGraphicsPushContext ( ctx );
CGRect r = CGRectMake( 500, 300, 200, 100 );
NSString *text = [[NSString alloc] initWithString:@"raaaaaaaa!"];
UIColor *color = [ UIColor colorWithRed: (200.0f) green: (100.0) blue:(200.0f) alpha: 1.0f ];
[color set];
[ text drawInRect: r withFont:[UIFont systemFontOfSize:50] lineBreakMode: UILineBreakModeWordWrap alignment: UITextAlignmentLeft ];
[text release];
UIGraphicsPopContext();
}
}
}
上記のコードは機能していません。なんで?
代わりに次のことを行うと、機能しています。
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
UIGraphicsPushContext ( ctx );
CATextLayer *label = [[CATextLayer alloc] init];
[label setFont:@"Didot"];
[label setFontSize:50];
[label setFrame:CGRectMake( 400, 300, 400, 100 )];
[label setString:@"Helloooooooooooooooooo"];
[label setAlignmentMode:kCAAlignmentCenter];
[label setForegroundColor:[[UIColor blueColor] CGColor]];
[layer addSublayer:label];
[label release];
UIGraphicsPopContext();
}
}
違いは何ですか?drawInRectが何もしないのはなぜですか?
ありがとうございました
編集 それで、私はUIColorを適切に使用していなかったので、私は変更しました
UIColor *color = [ UIColor colorWithRed: (200.0f) green: (100.0) blue:(200.0f) alpha: 1.0f ];
このため
UIColor *color = [UIColor colorWithRed:200 / 255.0 green:100 / 255.0 blue: 200 / 255.0 alpha: 1.0];
それでも運が悪いので、drawInRectを使用するとテキストが表示されません