1

我正在努力让 UIScrollView 正常工作。

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

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

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

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

滚动工作。但是,向下滚动时,如果 UITextView 包含大量文本,则文本的底部会被剪切掉。 这是向下滚动后显示的内容

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

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

文本被截断更多。

更少的文字

几个问题:

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

2 回答 2

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)
于 2012-04-04T18:16:06.230 回答
0

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

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

希望这可以帮到你。

于 2014-03-30T01:59:37.047 回答