2012-08-08 69 views
0

我想輸出iPhone的高分辨率版本的iPhone界面。我正在使用標籤imagesViews和textViews來創建內容。我使用renderInContext來製作主視圖的高分辨率圖像,並縮放內容以匹配。標籤和imageView似乎完美地工作,但textView隱藏文本的一些縮放正確定位。UITextView在縮放輸出時隱藏文本

下面是基本代碼:

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中的文本已消失。

enter image description here

這裏是項目本身,如果你想看看:owolf.net/uploads/StackOverflow/exportTest.zip

enter image description here UPDATE這裏TextView的,左邊,縮放除了在x中只有* 2,在右邊x被縮放爲3.注意文本開始被剪裁。

任何想法?幫助非常感謝

+0

我想你錯在你的代碼,增加textView.height在* 3(與寬度)或origin.y協調可能是太多,所以文本再次隱藏。沒有其他原因,這個textview的行爲,我還沒有找到 – frankWhite 2012-08-08 10:30:11

+0

或檢查你的uitextview中的字體系數 – frankWhite 2012-08-08 10:55:48

回答

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隱藏。嘗試嘗試係數,在這種情況下,大小的增加不是線性的。祝你好運!