滚动到ScrollView中的ContentInset视图,但之后没有足够的额外空间

时间:2017-07-21 17:23:01

标签: uiscrollview contentoffset

我的滚动视图中有一个内容视图,其高度很小。滚动视图占据包含视图控制器的整个高度。内容视图中最底部的视图是文本视图。当用户点击文本视图时,键盘会向上设置动画,并使用它为滚动视图的底部锚点设置动画。现在滚动视图足够短到内容视图可以滚动的位置。我想“关注”文本视图,以便找到相对于滚动视图的原点,并使用setContentInset(_,animated:)将文本视图滚动到屏幕上(如果它尚未显示在屏幕上)。我用这段代码做到了:

let point = self.scrollView.convert(self.textView.frame.origin, to: self.scrollView)
self.scrollView.setContentOffset(point, animated: true)

这里的问题是文本视图底部和键盘顶部之间存在额外的“死”空间。然而,setContentInset滚动到这个状态。当我滚动内容视图时,它会快速向下移动到键盘的顶部。

这是一个视觉描述。橙色视图是滚动视图,深灰色视图表示键盘的顶部。正如您所看到的,将滚动视图的内容偏移设置为浅灰色文本视图的原点意味着存在一定量的“死”(不知道该怎么称呼它或如何考虑它)之间的空间滚动视图的内容和“键盘”的顶部。因此,当您滚动滚动视图时,它会立即将文本视图捕捉到键盘。

我该怎么做才能解决这个问题?

0 个答案:

没有答案
相关问题