UIScrollView:处理动态内容?

Posted

技术标签:

【中文标题】UIScrollView:处理动态内容?【英文标题】:UIScrollView: handling of dynamic content? 【发布时间】:2012-01-02 14:24:05 【问题描述】:

我有一个带有 UIScrollView 的 Storyboard,其中包含两个 UILabel、一个 UIImageView 和一个 UITextView。 UIImageView 和 UITextView 的内容是动态的,它们的高度也是动态的。

目前我正在我的viewDidLoad 中执行此操作,以在插入动态文本后调整 UITextView 的大小:

CGRect frame = self.textView.frame;
frame.size.height = self.textView.contentSize.height;
self.textView.frame  = frame;

这是改变高度的方法吗?

我的下一个问题是设置 UIScrollView 的内容大小,以激活滚动。有没有一种聪明的方法来获取其所有内容的高度,还是我必须计算每个元素的高度并将其总和设置为 UIScrollView 的内容大小?

【问题讨论】:

【参考方案1】:

如果您的对象之间没有空间,您可以在 scrollView.subviews 中创建一个 for 循环并将所有高度相加以设置为 contentSize。

由于您可能没有将所有内容紧密结合在一起,因此最好通过获取最底部的对象并将它的 frame.origin.y 和它的 frame.size.height 相加(也许您想要一些额外的空间在这里,但这取决于您),这将为您提供 contentSize.height 以将所有内容保留在其中。

【讨论】:

以上是关于UIScrollView:处理动态内容?的主要内容,如果未能解决你的问题,请参考以下文章

消息传递(或不传递)到 UIScrollView

防止uiscrollview向右滚动

iOS-KVO动态监听UIScrollView的contentSize(UITableViewUICollectionView)

以编程方式滑动 UIScrollView

UIScrollView 显示为零?

UIScrollVIew 中的 UIView 不更新视图