Просто создайте дополнительный вид, содержащий текст поверх изображения. Если вы используете UILabel с [UIColor clearColor]
для цвета фона и установите для opaque значение false, вы просто увидите текст в верхней части изображения, и ни одно из изображений не будет скрыто.
Если вы хотите получить изображение из изображения в виде с прозрачным видом, содержащим текст поверх него, посмотрите этот ответ:
Как получить CGImageRef из содержимого UIView?
Примерно так:
UIView* baseView = [[UIView alloc] initWithFrame:frameSize];
UIImage* imageToCaption = [UIImage imageNamed:@"myImage.jpg"];
UIImageView* imageToCaptionView = [[UIImageView alloc] initWithImage:imageToCaption];
imageToCaptionView.frame = frameSize;
[baseView addSubview:imageToCaptionView];
[imageToCaptionView release];
// do stuff with fonts to calculate the size of the label, center it in your image etc. etc.
CGRect labelFrame = ...
UILabel* myLabel = [[UILabel alloc] initWithFrame:labelFrame];
myLabel.backgroundColor = [UIColor clearColor];
myLabel.opaque = NO;
// set the color, font, text etc.
[baseView addSubView:myLabel];
[myLabel release];
Не скомпилировано или завершено, но вы поняли идею. Если вы хотите получить результат в виде изображения, используйте do [baseView.layer renderInContext:context];