【发布时间】:2016-01-04 05:09:32
【问题描述】:
我有两个 UITextView 框,它们位于 UIView 中,而 UIScrollView 中。我的问题是,当我在模拟器中运行应用程序时,UITextView 框比我想要的要低,但是在 UITextView 框内单击后,然后关闭键盘并且我的 textViewDidEndEditing 函数触发,他们设置回到我最初希望它们所在的位置。在我的textViewDidEndEditing 函数中,我确实将UIScrollView 内容偏移设置回(0,0)所以我最初的解决方案是我需要设置内容偏移立即到 (0,0) ,然后将我的两个 UITextView 框放在我想要的位置。
现在我首先尝试在viewDidLoad 中执行此操作,但没有任何更改,因此我尝试在viewDidAppear 中设置它,这有效,但我的问题是一旦视图出现,您实际上会看到 textview盒子弹出到位,我不喜欢那样。我还检查了我的约束,它们都很好,因为我认为它们也可能导致问题。当视图出现时,我不太确定在没有实际看到UITextView 弹出到位的情况下我能做些什么来使它工作。
这是视图控制器第一次出现时 UITextView 框的样子,而没有 viewDidAppear 方法设置内容偏移量。
这就是我想要的 UITextView 框的样子。
任何帮助将不胜感激。谢谢
【问题讨论】:
-
如果您以编程方式创建它,请尝试在
viewDidLoad中创建框,然后在viewDidLayoutSubview中设置它们的位置,它应该可以解决问题 -
感谢您的回复。所以只是为了确保我理解,从情节提要中删除两个文本视图框并在 viewDidLoad 中创建它们,然后在 viewDidLayoutSubview 中设置它们?
-
在
viewDidLoad中设置self.automaticallyAdjustsScrollViewInsets = false -
对不起,我的意思是你在代码中设置的任何与大小和约束相关的东西,你应该把它放在
viewDidLayoutSubview,它和你在viewDidAppear中设置的一样,但不会被注意到眼睛,如果你已经用故事板创建了这些盒子,那么保留它:) 在这种情况下是你的scrollview content offset我猜? -
@Hamza Ansari,效果很好。非常感谢你。是否有默认情况下自动设置滚动视图插图的原因?
标签: ios swift uiscrollview uitextview