如何在UIScrollview中设置UITextView的框架

时间:2012-04-04 17:55:03

标签: objective-c uiscrollview

我很难让UIScrollView正常工作。

我有一个带有UIImageView和UITextView的UIScrollView作为它的子视图。

UIScrollView,UIImageView和UITextView连接到我的控制器。

当我在viewDidLoad中使用这行代码时:

self.scrollView.contentSize = CGSizeMake(320, 1000);

滚动工作。但是,向下滚动时,如果UITextView包含大量文本,则文本的底部会被剪切掉。 this is what is displayed after scrolling down

我认为我必须调整UITextView的框架。当我在viewDidLoad中添加这三行时:

CGRect frame = self.bioText.frame;
frame.size = self.bioText.contentSize; 
self.bioText.frame = frame;

文字被切断了。

even less text

几个问题:

  • 如何正确调整UITextView,以便在滚动时显示所有文本。
  • 有没有办法将scrollview contentSize设置为所有子视图的总和(而不是像我现在那样硬编码)

2 个答案:

答案 0 :(得分:1)

您无需调整textView的contentSize,它会根据文本自动调整

如果您希望UIScrollView的contentSize根据其子视图进行调整,并且所有子视图都是垂直的,则可以使用此

CGFloat height = 0
for(UIView* sub in myScrollView.subviews)
height += sub.frame.size.height

myScrollView.contentSize = CGSizeMake(self.contentSize.width, height)

答案 1 :(得分:0)

今天我刚刚解决了这个问题。你可以设置textView' viewDidLayoutSubviews中的框架。 这是我的应用程序中的代码:

- (void)viewDidLayoutSubviews {
    CGRect rect = self.textView.frame;
    rect.size.height = self.textView.contentSize.height;
    self.textView.frame = rect;
}

希望这可以帮到你。