调用 [self.view addSubview:self.overlayView] 后 ScrollView 重置其位置的问题;

Posted

技术标签:

【中文标题】调用 [self.view addSubview:self.overlayView] 后 ScrollView 重置其位置的问题;【英文标题】:Issue with ScrollView resetting it's position after calling [self.view addSubview:self.overlayView]; 【发布时间】:2014-08-28 03:12:48 【问题描述】:

我有一个可滚动的输入表单,其中包括表情选择器,它显示为覆盖层,框架设置为父视图:

self.emoticonOverlayView = [[EmoticonOverlayView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:self.emoticonOverlayView];

表情叠加视图弹出得很好,但它下面的 UIScrollView 滚动到顶部。任何关于它为什么滚动回顶部的建议都会非常有帮助。

我尝试使用此建议,但似乎无法解决问题。 UIScrollView unwanted scrolling after addSubview or changing frame

谢谢!

【问题讨论】:

你可以尝试先将内容视图添加到滚动视图中,并在此内容视图中包含所有子视图。 感谢您的推荐。您是正确的,我的所有滚动视图控件都不包含在驻留在我的滚动视图中的单个视图中(我一直认为这是最佳实践)。明天上班的时候试试。谢谢! 这完全解决了问题,谢谢! 我将其发布为答案。你能接受吗? 【参考方案1】:

您可能想先尝试将内容视图添加到滚动视图,并将所有子视图包含在此内容视图中。

【讨论】:

以上是关于调用 [self.view addSubview:self.overlayView] 后 ScrollView 重置其位置的问题;的主要内容,如果未能解决你的问题,请参考以下文章

self.view = mainView vs self.view.addSubview(mainView)关于角半径

[self.view addSubview:myView.view];奇怪的行为

UITableView addsubview 崩溃

透明子视图控制器的视图

透明子视图控制器的视图

Swift - UISlider