UIScrollView:处理动态内容?

发布于 2024-12-23 16:15:37 字数 476 浏览 0 评论 0原文

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

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

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

这是更改其高度的方法吗?

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

I've a Storyboard with a UIScrollView which contains two UILabels, a UIImageView and a UITextView. The content of the UIImageView and UITextView is dynamic and so are their height.

Currently I'm doing this inside my viewDidLoad to adjust the size of the UITextView after the dynamic text is inserted:

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

Is this the way to change its height?

My next problem is to set the content size for the UIScrollView, to activate the scrolling. Is there a smart way to get the height of all its content or do I have to calculate the height for each element and set the sum of this as the content size of the UIScrollView?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我家小可爱 2024-12-30 16:15:37

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

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

IF you had no space in between your objects, you could make a for loop in your scrollView.subviews and add up all the heights to set as the contentSize.

As you probably don't have everything tight together, you're probably better by getting the bottom most object and adding up it's frame.origin.y and it's frame.size.height (maybe you want to have some extra space in here, but that's up to you) and that will give you your contentSize.height to keep everything in there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文