gpt4 book ai didi

ios - UIScrollView:内部 View 不正确,行为奇怪, View 在触摸时弹回

转载 作者:行者123 更新时间:2023-11-30 13:53:27 24 4
gpt4 key购买 nike

我在使用 UIScrollView 时遇到了麻烦...我进行了很多研究,发现了类似的案例,但解决方案似乎从未起作用,所以这里有一些解释(很难解释)

我有一个包含 UIScrollView 的 View Controller ,我在该 uiscrollview 中加载了几个 View Controller ...我 instatnite 它们,然后像​​这样将它们添加到 ScrollView 中...

viewController1.view.frame = scrollView1.bounds
var frame0 = viewController1.view.frame
frame0.origin.x = 0
viewController1.view.frame = frame0

self.addChildViewController(viewController1)
self.scrollView1.addSubview(viewController1.view)
viewController1.didMoveToParentViewController(self)

viewController2.view.frame = scrollView1.bounds
var frame01 = viewController2.view.frame
frame01.origin.x = self.view.frame.size.width
viewController2.view.frame = frame01

self.addChildViewController(viewController2)
self.scrollView1.addSubview(viewController2.view)
viewController2.didMoveToParentViewController(self)

...

之后我按如下方式配置 ScrollView

self.scrollView1.contentSize  = CGSizeMake(self.view.frame.width * 5, self.view.frame.height)
scrollView1.delaysContentTouches = false

乘以 5,因为有 5 个 ViewController

( ScrollView 已启用分页)

现在这个方法工作得很好,所有 View 都加载到 ScrollView 中,我可以滑动我的 View ,但这就是问题。我的第一个 View 加载得很好,然后当我向右滑动时,我看到第二个 View 偏移到顶部并且它的一部分被隐藏,然后当我触摸 View 内的按钮时,它突然捕捉到底部地方...这真的很烦人,因为它使用户界面真的很烦人,因为它的一部分被隐藏了...

我做了一个说明:http://imgur.com/xHRwXt4

我尝试了很多诸如设置之类的事情

self.automaticallyAdjustsScrollViewInsets = false

self.scrollView1.clipsToBounds = true

但是还是出现同样的问题。我还认为这是我的导航栏,因为包含 ScrollView 的 View 位于具有导航栏的 ViewController 内(来自 uinavigationcontroller)

因此,出于测试目的,我在没有导航 Controller 和栏的情况下进行了尝试,但仍然出现了同样的问题。这真的很令人沮丧,我似乎找不到解决方案。

但是我不得不说,当 ScrollView 位于带有导航栏的 ViewController 内并且我设置时

self.scrollView1.contentSize  = CGSizeMake(self.view.frame.width * 5, self.view.frame.height - 66) 

(注意-66)然后捕捉问题没有发生,但这不是我想要的效果,因为 ScrollView 需要填充整个 View ,而且 UIScrollView 内的 View 当时也不完全可见,所以这不是解决方案要么。

我还告诉我,这可能是因为我加载的 View Controller 之一上的约束设置不同,所以我尝试启动相同类型的 View Controller 几次,但仍然出现相同的问题...

(所以我已经尝试了很多,但无论我尝试做什么,它都会变得更糟,或者每个 View 向任一方向移动都会出现另一个问题,然后我添加 self.automaticallyAdjustsScrollViewInsets = false 但然后捕捉返回等等。)

希望有人能提出一些建议来解决这个问题(如果我需要更多插图等,那么我也会提供这些。)

谢谢

最佳答案

从表面上看,有两件事可以尝试:

  1. 某些 subview Controller 可能包含 ScrollView ,并且除了父 View Controller 之外,还需要设置它们的automaticallyAdjustsScrollViewInsets = false
  2. 一个非常有用的查找方法是打开 View 调试。运行项目,然后转到 Xcode > 查看调试 > 显示 View 框架。查看 subview Controller 的 subview 是否沿顶部未对齐。如果它们正确对齐(顶部全部刷新),则意味着问题出在各个 subview 中。

关于ios - UIScrollView:内部 View 不正确,行为奇怪, View 在触摸时弹回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33966714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com