我正在尝试输出我的 iPhone 界面的高分辨率版本。我正在使用标签 imagesViews 和 textViews 来创建内容。我正在使用 renderInContext 制作主视图的高分辨率图像,并缩放内容以匹配。标签和 imageViews 似乎工作得很好,但是当 textView 正确缩放和定位时,它会隐藏一些文本。
这是基本代码:
UIGraphicsBeginImageContext(CGSizeMake(1536, 2048));
myExportView.frame = CGRectMake(0, 0, 1536, 2048);
[myLabel setFrame:CGRectMake(myLabel.frame.origin.x*4.4232, myLabel.frame.origin.y*4.4232, myLabel.frame.size.width*4.4232, myLabel.frame.size.height*4.4232)];
[myLabel setFont:[UIFont fontWithName:@"Arial" size:myLabel.font.pointSize*4.4232]];
[myTextView setFrame:CGRectMake(myTextView.frame.origin.x*4.4232, myTextView.frame.origin.y*4.4232, myTextView.frame.size.width*4.4232, myTextView.frame.size.height*4.4232)];
[myTextView setFont:[UIFont fontWithName:@"Arial" size:myTextView.font.pointSize*4.4232]];
[[myExportView layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);
这是界面和输出的视觉效果,左侧是 640 × 960 界面,右侧是我的 1536 × 2048 输出图像(如预期的那样)注意标签和 textView 已正确缩放,但 textView 中的文本离开了。
如果您想看一下,这里是项目本身:owolf.net/uploads/StackOverflow/exportTest.zip
这里的更新是左侧的 textView,以各种方式放大到 4.5,除了在 x 中它只有 *2,在右侧,x 被缩放到 3。注意文本开始被剪裁。
有任何想法吗?非常感谢帮助