【发布时间】:2019-11-08 14:51:04
【问题描述】:
我有一个静态表视图控制器,其中一个单元格是一个容器视图,它具有另一个动态表视图。内部表格视图有一个文本字段,当点击时,键盘会弹出。在主(外部)表视图控制器中,我有以下函数来更新键盘显示的约束。
func updateConstraints() {
let bottom: CGFloat = 0
if let popup = self.addItemPopupView {
self.popupBottomContraints?.isActive = false
if self.isKeyboardActive {
self.popupBottomContraints = popup.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor,
constant: -self.keyboardHeight+bottom)
} else {
self.popupBottomContraints = popup.bottomAnchor.constraint(equalTo: self.toolbar.topAnchor, constant: bottom)
}
self.popupBottomContraints?.isActive = true
}
}
但问题在于,在键盘显示上,内部表格视图会跳转到容器视图内的顶部,而主视图控制器本身会移动到顶部。如何防止内表视图根本不动?我为表格视图禁用了滚动、弹跳,但它仍然会发生。
外部表格单元格的动态高度设置为内部表格视图的内容高度,因此无需滚动。
【问题讨论】:
-
在键盘关闭的情况下,内部表格视图的行为是什么?
-
键盘关闭时,没有问题,没有跳来跳去。主视图只是向下滑动。
标签: ios swift uitableview uicontainerview