我正在努力让UIScrollView工作,但我遇到了一些困难。当我尝试滚动时,我的屏幕上什么都没有移动。
没有内容大小模糊警告,这让我相信我已正确设置我的内容大小,并且约束(我希望)很好(我有一个视图,其中包含一个滚动视图,其中包含一个视图4个文本域和textview)。
我尝试使用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
}
然而,即使我点击被键盘遮盖的文本字段,我的屏幕也不会向上滚动。
我尝试在这里搜索实现了很多解决方案,但似乎没有任何帮助。如果有人对可能出现的问题有任何想法,我会非常感激!非常感谢你!!
答案 0 :(得分:0)
滚动视图是自动布局的一个例外情况。确保您已按Technical Note TN2154。
中所述配置约束此外,如果您的委托方法指示正在进行滚动,但您没有看到内容移动,请仔细检查内容实际上是滚动视图的子视图,而不是滚动视图的子视图& #39;超级视图仅覆盖滚动视图。
请记住,UIKit应仅用于主线程 - 滚动视图的奇怪行为是尝试从后台线程使用UIKit的一种症状。
最后,使用the view debugger built into Xcode在运行时检查视图层次结构。