我需要在 iPhone 中的图像上放置文本。这就像 Eurosport iPhone 应用程序。
(来源:mzstatic.com)
以同样的方式,我需要在我的应用程序中放置一个文本。我怎样才能做到这一点?
谢谢。
我需要在 iPhone 中的图像上放置文本。这就像 Eurosport iPhone 应用程序。
(来源:mzstatic.com)
以同样的方式,我需要在我的应用程序中放置一个文本。我怎样才能做到这一点?
谢谢。
我找到了两种方法
1:
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(0, 25, 200, 200);
imageView.image = [UIImage imageNamed:@"Choice set.png"];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];
myLabel.text = @"Hello There";
myLabel.textColor = [UIColor whiteColor];
myLabel.backgroundColor = [UIColor blueColor];
[imageView addSubview:myLabel];
[self.view addSubview:imageView];
[imageView release];
[myLabel release];
2:
向 UIImage 添加文本
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{
int w = img.size.width;
int h = img.size.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
char* text= (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];
CGContextSelectFont(context, "Arial",20, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 0, 0, 0, 1);
CGContextShowTextAtPoint(context,10,10,text, strlen(text));
CGImageRef imgCombined = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
UIImage *retImage = [UIImage imageWithCGImage:imgCombined];
CGImageRelease(imgCombined);
return retImage;
}
然后打电话
UIImage *image = [UIImage imageNamed:@"myimage.png"];
imageView.image = [self addText:image text:@"Hello there"];
只需简单地制作具有清晰背景的标签。
yourLabel.backgroundColor = [UIColor clearColor];