当滚动视图反弹时,滚动 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 子视图不应该移动的主要内容,如果未能解决你的问题,请参考以下文章