在滚动视图中获取内容视图子视图的高度

Posted

技术标签:

【中文标题】在滚动视图中获取内容视图子视图的高度【英文标题】:get height of a content view subview in a scroll view 【发布时间】:2014-02-19 09:26:52 【问题描述】:

我正在尝试了解滚动视图如何与自动布局一起使用。 我知道有两种方法可以让它工作,纯版本或混合版本。我正在尝试混合版本,遵循此页面上的接收:https://developer.apple.com/library/ios/technotes/tn2154/_index.html

我有一个带有 contentView 作为第一个子视图的滚动视图。根据苹果recepi,我需要这样做:

[scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];

我已将我的 contentView 设置为 600 pt 高,但是当我运行应用程序时,它只记录屏幕大小而不是 contentView 的实际大小。

NSLog(@"%@", NSStringFromCGSize(self.scrollViewContent.bounds.size));

这会记录 320, 568

我做错了什么?

【问题讨论】:

scrollViewContent 表示滚动视图? scrollViewContent (UIView) 是我的滚动视图的第一个子视图。 scrollViewContent 包含其他视图,例如按钮等。 这意味着你的滚动视图有一个子视图(scrollViewContent)。但是otherview都是scrollViewContent的子视图。对吗? 【参考方案1】:

根据您的 cmets,视图层次结构如下。这背后的概念,即使您更改滚动视图的内容大小,它也不会更改所有子视图的大小。

---ScrollView
    -----scrollViewContent
          ------OtherViews

如果您想根据内容大小更改内容视图的大小,只需更改内容视图框架的大小即可。

CGRect newFrame = self.scrollViewContent.frame;
frame.size = scrollView.contentSize;
self.scrollViewContent.frame = newFrame;

【讨论】:

以上是关于在滚动视图中获取内容视图子视图的高度的主要内容,如果未能解决你的问题,请参考以下文章

为啥有时滚动视图和子视图大小不一致

滚动视图内的Android约束布局高度无效

滚动视图中的内容随着导航菜单的高度值向下移动

文本视图的高度在滚动视图中是动态的

滚动视图不在自动布局中滚动子视图

缩放时,UIScrollview 子视图无法识别手势