UITextView调整大小 - 从横向到纵向切割的大文本

时间:2014-02-28 17:02:36

标签: ios objective-c uitextview

我对UITextView的大小调整有疑问。我有一个驻留在UIView容器内的textview。当应用程序启动时,容器只显示工具栏,当用户点击它时,textview的UIView被添加为容器的子视图,并显示文本。当用户再次点击工具栏上时,UITextView的视图将从其超级视图(容器)中删除,依此类推。 每当我需要调整textview的大小时,我会使用以下代码计算它的维度并记录该值,它们是正确的。

  CGSize size = [stringToUse  sizeWithFont:[self.synthesisTextView font]
                        constrainedToSize:CGSizeMake(synthesisTextViewBounds.size.width, FLT_MAX)
                        lineBreakMode:NSLineBreakByWordWrapping];

    [self.synthesisTextView setScrollEnabled:YES];

    [self.synthesisTextView setContentSize:CGSizeMake(synthesisTextViewBounds.size.width,
                                                      size.height + 50)];

    [self.synthesisTextView setFrame:CGRectMake(synthesisTextViewFrame.origin.x,
                                                synthesisTextViewFrame.origin.y,
                                                synthesisTextViewBounds.size.width,
                                                size.height + 50)];

    [self.synthesisLabel setFrame:CGRectMake(self.synthesisLabel.frame.origin.x,
                                             self.synthesisLabel.frame.origin.y,
                                             self.synthesisLabel.frame.size.width,
                                             size.height + 50)];

即使UITextView具有正确的维度,也会出现文本被截断的特定情况。

以下是我执行的步骤:

  1. 我在lanscape中打开应用程序,我可以看到工具栏。
  2. 我点击工具栏,我计算了textview的大小,我将其添加为 容器的子视图然后调整大小。 (这里的维度是 右)。
  3. 我旋转设备,调整textview的大小(尺寸为 右) - LANDSCAPE !!
  4. 我再次点击工具栏以关闭容器。我删除了 从容器中UITextView然后调整大小。
  5. 我再次点击工具栏。 textview被添加为子视图 容器并具有正确的尺寸(LANDSCAPE)。
  6. 我在PORTRAIT中旋转设备。 textview维度是 计算正确,但文本结果被截断。
  7. 我如何解决我的情况?

    非常感谢!!

    侨!!

1 个答案:

答案 0 :(得分:0)

//textView Height as per content

CGRect frame = viewNote.frame;
NSLog(@"Text Size height : %f",frame.size.height);

CGSize textViewSize;
if (isIPhone) {
    textViewSize = [viewNote.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:20]
                                    constrainedToSize:CGSizeMake(309, 10000)
                                        lineBreakMode:UILineBreakModeTailTruncation];
}else{
    textViewSize = [viewNote.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:30]
                                    constrainedToSize:CGSizeMake(768, 10000)
                                        lineBreakMode:UILineBreakModeTailTruncation];
}

frame.size.height = textViewSize.height;
viewNote.frame = frame;