【发布时间】:2014-10-03 16:06:12
【问题描述】:
在发布大量代码之前,我想确保它不是一个众所周知的问题(独立于特定代码),所以首先我将大致解释一下我的问题:
在故事板中,我创建了一个 UIViewController,添加了一个 UIScrollView 以及另一个 UIView(分层子视图)。当键盘出现时,我需要滚动视图将内容向上推,以便文本字段保持可见。运行应用程序时,除了内容看起来比我的故事板中定义的更靠近屏幕底部之外,一切正常。一旦我点击文本字段,内容就会向上滚动(通过将scrollView.contentInset 和scrollView.scrollIndicatorInsets 调整为(0.0, 0.0, keyboardSize!.height, 0.0))并且它的位置与预期的一样。当按下回车键时,键盘消失,内容再次向下滚动(通过将scrollView.contentInset 和scrollView.scrollIndicatorInsets 调整为(0.0, 0.0, 0.0, 0.0))但现在一切都像我想要的那样,就像在故事板中定义的那样。
为了了解发生了什么,我还将viewDidLoad()、keyboardDidShow 和keyBoardDidHide 中的一些y 点打印到控制台,但是在比较它们时,它们都是相同的。我错过了什么?您需要查看我的代码的某些特定部分吗?
【问题讨论】:
-
你试过在 viewDidLoad 中设置
scrollView.contentInset and scrollView.scrollIndicatorInsets to (0.0, 0.0, 0.0, 0.0)吗? -
是的,但初始位置保持不变@Putz1103
-
哦,放入
viewDidAppear()就可以了!您如何看待,这是一个优雅的解决方案,还是只是代码中缺少某些东西的解决方法?它实际上会影响什么?为什么在第一次加载视图时设置不同?
标签: ios uiscrollview