我正在尝试输出我的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.注意文本开始被修剪。
有什么想法吗?非常感谢
答案 0 :(得分:0)
我对您的代码进行了一些实验:
- (IBAction)export:(id)sender {
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.55, 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);
// adding for experiment
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(1536, 2048);
[self.view addSubview:scroll];
[scroll addSubview:myExportView];
[scroll addSubview:myTextView];
[scroll addSubview:myLabel];
}
(我已更改myTextView.frame.origin.y * 4.55)
所以它发生了,因为你使用相同的系数,并且在结果文本视图中偏移了一点点,所以文本似乎隐藏了。它由uilabel隐藏。尝试使用系数进行实验,在这种情况下,尺寸的增加不是线性的。祝你好运!
答案 1 :(得分:0)
我最终使用了一个标签。请参阅此主题以获取解决方案:
Top aligned UILabel, make text stick to top of label view -ios