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:处理动态内容?的主要内容,如果未能解决你的问题,请参考以下文章
iOS-KVO动态监听UIScrollView的contentSize(UITableViewUICollectionView)