簡體   English   中英

UITextView在縮放以進行輸出時隱藏文本

[英]UITextView hides text when scaled for output

我正在嘗試輸出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

在此處輸入圖片說明 這里的UPDATE是左邊的textView,它以各種方式放大到4.5,除了x只是* 2,右邊的x縮放到3。請注意,文本開始被剪切。

有任何想法嗎? 幫助非常感謝

我對您的代碼做了一些實驗:

- (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隱藏。 嘗試用系數進行實驗,在這種情況下,尺寸的增加不是線性的。 祝好運!

我最終為此使用了標簽。 請參閱此線程以獲取解決方案:

頂部對齊的UILabel,使文本停留在標簽視圖的頂部-ios

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM