UIScrollView:没有滚动
Posted
技术标签:
【中文标题】UIScrollView:没有滚动【英文标题】:UIScrollView: Nothing is scrolling 【发布时间】:2016-07-05 20:05:33 【问题描述】:我正在尝试让 UIScrollView 正常工作,但遇到了一些困难。当我尝试滚动时,我的屏幕上什么都没有移动。
没有内容大小歧义警告,这让我相信我已经正确设置了我的内容大小并且约束(我希望)很好(我有一个视图,其中包含一个滚动视图,其中包含一个视图4 个文本字段和一个文本视图)。
我尝试使用 viewDidLayoutSubviews() 以编程方式将内容大小设置为非常大,但这也无济于事。
我在这些方法中添加了:
func scrollViewWillBeginDragging(scrollView: UIScrollView)
print("touch detected")
func scrollViewDidScroll(scrollView: UIScrollView)
print("scrolling happened")
当我运行我的应用程序并尝试手动滚动时,“检测到触摸”会打印一次,“滚动发生”会打印很多次。我很困惑,因为似乎调用了正确的方法,但我看不到任何滚动。
另外,我还有这个方法:
func keyboardWasShown(aNotification: NSNotification)
let info = aNotification.userInfo
let kbSize = info![UIKeyboardFrameBeginUserInfoKey]?.CGRectValue().size
let contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize!.height, 0.0)
scrollView.contentInset = contentInsets
scrollView.scrollIndicatorInsets = contentInsets
但是,即使我单击被键盘覆盖的文本字段,我的屏幕也不会向上滚动。
我已经尝试在此处搜索实现很多解决方案,但似乎没有任何帮助。如果有人对可能出现的问题有任何想法,我将不胜感激!非常感谢!!
【问题讨论】:
您应该真正展示如何设置滚动视图及其内容的代码 我通过情节提要完成了这一切......我不确定如何展示它?我应该截图约束吗? 【参考方案1】:滚动视图是自动布局的一个例外情况。确保您已按照Technical Note TN2154 中的说明配置约束。
此外,如果您的委托方法指示正在滚动,但您没有看到内容移动,请仔细检查内容是否实际上是滚动视图的子视图,而不是滚动视图的父视图的子视图只是覆盖滚动视图。
请记住,UIKit 只能在主线程上使用——滚动视图的奇怪行为是尝试从后台线程使用 UIKit 的症状之一。
最后,使用the view debugger built into Xcode 在运行时检查视图层次结构。
【讨论】:
据我所知,我的约束是这样配置的,我的内容实际上是一个子视图。我怎么知道我是否在后台线程上使用 UIKit?另外,我对此有点陌生,所以我可以就如何使用调试器找出问题所在有一些进一步的指导吗?谢谢你的帮助!! 知道了!!这实际上是我的约束有问题,我的内容视图中的顶部内容被固定到滚动视图之外的东西,它不应该是。非常感谢!! 如果您不知道您是否使用后台线程,那么您几乎可以肯定没有。您只需单击视图调试器按钮并像在this video 中一样查看您的视图。以上是关于UIScrollView:没有滚动的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView 不使用 RubyMotion 滚动