1

私は次のように画像にテキストを書いています:

    -(UIImage *)addLabelToImage:(UIImage *)img
{
    UIFont *font = [UIFont boldSystemFontOfSize:20];
    UIGraphicsBeginImageContext(img.size);
    [img drawInRect:CGRectMake(0, 0,img.size.width,img.size.height)];
    CGRect rect = CGRectMake(60, 550, img.size.width, img.size.height);
    [[UIColor whiteColor] set];
    [[NSString stringWithFormat:@"%@, %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"whatever"], [[NSUserDefaults standardUserDefaults] valueForKey:@"whatever2"]] drawInRect:CGRectIntegral(rect) withFont:font]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

このテキストにドロップ シャドウを追加するにはどうすればよいですか? テキストを数ピクセルずらして黒で再描画できることはわかっていますが、もっと簡単な方法はありますか?

乾杯、ジョージ

4

1 に答える 1

3

テキストを描画する前に、次のように影を設定できます。

//...
CGContextRef c = UIGraphicsGetCurrentContext();
CGSize offset = CGSizeMake(0, 1);
CGFloat blur = 2.0;
UIColor *shadowColor = [UIColor blackColor];
CGContextSetShadowWithColor(c, offset, blur, [shadowColor CGColor]);
//draw your text ...

offset必要に応じて、blurおよびパラメータを調整して、shadowColor目的の効果を実現します。シャープなシャドウ ( のようなUILabel) の場合は、 に設定blur0ます。

于 2012-07-16T18:14:18.087 に答える