当滚动视图反弹时,滚动 UIScrollView 子视图不应该移动

Posted

技术标签:

【中文标题】当滚动视图反弹时,滚动 UIScrollView 子视图不应该移动【英文标题】:On Scrolling UIScrollView subview should not move when scrollView bounces 【发布时间】:2014-05-29 13:17:02 【问题描述】:

我正在使用来自 github Control Used 的这个控件 https://github.com/aaronpang/SecretViewer

我已添加到子视图 1) 名称 2) 并添加了两个按钮

基本上我已经添加到 backgroundScrollView。

[_backgroundScrollView addSubview:_segmentedButtonsView];

我已尝试减小 _backgroundScrollView 内容大小。

当我将UINavigationController 添加为根控制器并希望按照下图仅附加在tableView 的顶部时,弹跳效果应按照示例保持。

但是当我滚动子视图时不应该按照下面的图片移动。

注意:我使用的是 Storyboard 和 ios 7

【问题讨论】:

你能附上一个示例项目吗? 【参考方案1】:

我认为您应该将滚动视图的子视图限制为仅一个“内容”视图,并将其余部分嵌入此内容视图的子视图。

【讨论】:

【参考方案2】:

我有点不确定您想要实现什么,但我认为您希望子视图保持固定在滚动视图上方?我会尝试先添加到 _backgroundScrollView 的超级视图,如下所示:

[_backgroundScrollView.superview addSubview:_segmentedButtonsView];

如果这不起作用,请尝试将其添加到 AppDelegate 的窗口,如下所示:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[[appDelegate window] addSubview:_segmentedButtonsView];

使用第二个选项,您必须在关闭滚动视图时手动删除子视图。希望这会有所帮助!

【讨论】:

【参考方案3】:

为什么不将此视图添加到 UINavigationController,如下所述:

How to put buttons over UITableView which won't scroll with table in ios

【讨论】:

【参考方案4】:

你的问题有点不清楚。据我了解,您不希望滚动视图向右滚动或水平弹跳??

对于 ScrollView,您可以使用 alwaysBounceVertical = YES; 来阻止水平滚动。

这也可能是 iOS7 导航控制器常见的滚动视图插入问题,您可以查看 here。要解决这个问题,您可以尝试设置self.automaticallyAdjustsScrollViewInsets = NO

希望这对您有所帮助。

【讨论】:

以上是关于当滚动视图反弹时,滚动 UIScrollView 子视图不应该移动的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 在内容小于视图大小时反弹

如何在 UIScrollView 的“反弹”区域中绘制?

UITableView Inside UIScrollView 滚动问题

限制UIScrollView中的可滚动区域

对 UIScrollView 的 RTL 支持

IOS。当 UIScrollView 滚动时应用另一个滚动动画[关闭]