我在“界面”构建器中创建了UIScrollView
,现在在UIScrollView
中有一个UITextField
。当键盘打开时,我想更改ContentInset
的{{1}}以适应键盘。
我之前通过一个名为UIScrollView
的程序包完成了这项工作,该程序会反应性地为我提供了键盘的高度:
RXKeyboard
现在RxKeyboard.instance.visibleHeight
.drive(onNext: { height in
self.scrollView.contentInset.bottom = height
print("offset", self.scrollView.contentInset)
}).disposed(by: disposeBag)
的{{1}}确实发生了变化(通过打印显示),然而,实际上没有任何变化,我的ContentInset
的底部被键盘隐藏了。
我在这里遗漏了什么吗?我尝试将其移至UIScrollView
,我在设置插图后尝试UIScrollView
,但我无法使其工作。
有没有人知道这方面的解决方案?
谢谢!
答案 0 :(得分:0)
没错,您已将scrollView的插图设置为键盘的高度,但是当键盘出现时,您希望将scrollView内容设置为键盘&#39 ;高度。
您必须通过调整 contentOffset 属性将scrollView滚动到键盘高度。
RxKeyboard.instance.willShowVisibleHeight
.drive(onNext: { keyboardVisibleHeight in
self.scrollView.contentOffset.y += keyboardVisibleHeight
})
.disposed(by: disposebag)
正如documentation所说,
内容视图的原点偏离滚动视图的原点的位置。
通过将 contentOffset.y 设置为键盘的高度,您可以告诉scrollView移动/滚动到该高度。