当键盘弹出时将原点移动到顶部时出现黑色
Black color appears when moving origin to top when keyboard pops
当键盘显示时,我将 self.view
的原点移动到文本字段的 -minY
处,以使文本字段显示在屏幕顶部。但如果文本字段靠近底部,则框架底部会变成黑色。我点击了附加图像中的第一个文本字段,将其移至顶部。有没有办法在不显示黑色的情况下移动视图?
视图层次结构为
+ UIViewController
+ UIView
+ UIScrollView
+ UIView
- UITextField
- UITextField
- UITextField
self.view.frame.origin.y = -(tagsTextField.frame.minY)
您可以将嵌入视图(可能是您的导航控制器)的背景颜色设置为与您的视图背景颜色相同的颜色。
我通常在表单屏幕上做的是将输入字段放在 UITableView
中。然后,我没有向上移动视图以使当前输入字段可见,而是滚动 UITableView
.
因此,UITableView
的背景 view/color 不会移动。
我通过在文本字段点击时设置滚动视图内容偏移来修复它。
scrollView.setContentOffset(CGPoint(x: 0, y: tagsTextField.frame.minY), animated: true)
并在键盘关闭时重置。
scrollView.setContentOffset(CGPoint(x: 0.0, y: 0.0), animated: true)
当键盘框架将文本字段隐藏键盘高度时,您可以向上移动框架:
override func keyboardWillBeShown(note: Notification) {
let userInfo = note.userInfo
let keyboardFrame = userInfo?[UIKeyboardFrameEndUserInfoKey] as! CGRect
if keyboardFrame.intersects(activeTextField.frame) {
UIView.animate(withDuration: 0.2) {
self.view.frame.origin.y = -keyboardFrame.height
}
}
}
override func keyboardWillBeHidden(note: Notification) {
UIView.animate(withDuration: 0.2) {
self.view.frame.origin.y = 0
}
}
当键盘显示时,我将 self.view
的原点移动到文本字段的 -minY
处,以使文本字段显示在屏幕顶部。但如果文本字段靠近底部,则框架底部会变成黑色。我点击了附加图像中的第一个文本字段,将其移至顶部。有没有办法在不显示黑色的情况下移动视图?
视图层次结构为
+ UIViewController
+ UIView
+ UIScrollView
+ UIView
- UITextField
- UITextField
- UITextField
self.view.frame.origin.y = -(tagsTextField.frame.minY)
您可以将嵌入视图(可能是您的导航控制器)的背景颜色设置为与您的视图背景颜色相同的颜色。
我通常在表单屏幕上做的是将输入字段放在 UITableView
中。然后,我没有向上移动视图以使当前输入字段可见,而是滚动 UITableView
.
因此,UITableView
的背景 view/color 不会移动。
我通过在文本字段点击时设置滚动视图内容偏移来修复它。
scrollView.setContentOffset(CGPoint(x: 0, y: tagsTextField.frame.minY), animated: true)
并在键盘关闭时重置。
scrollView.setContentOffset(CGPoint(x: 0.0, y: 0.0), animated: true)
当键盘框架将文本字段隐藏键盘高度时,您可以向上移动框架:
override func keyboardWillBeShown(note: Notification) {
let userInfo = note.userInfo
let keyboardFrame = userInfo?[UIKeyboardFrameEndUserInfoKey] as! CGRect
if keyboardFrame.intersects(activeTextField.frame) {
UIView.animate(withDuration: 0.2) {
self.view.frame.origin.y = -keyboardFrame.height
}
}
}
override func keyboardWillBeHidden(note: Notification) {
UIView.animate(withDuration: 0.2) {
self.view.frame.origin.y = 0
}
}