当键盘弹出时将原点移动到顶部时会出现黑色

问题描述 投票:0回答:3

当键盘显示文本字段显示在屏幕顶部时,我正在通过文本字段的self.view移动-minY的原点。但如果文本字段靠近底部,则框架底部会变成黑色。我点击附加图像中的第一个文本字段,将其移动到顶部。有没有办法移动视图而不显示黑色?

视图层次结构是

+ UIViewController
  + UIView
    + UIScrollView
      + UIView
        - UITextField
        - UITextField
        - UITextField
self.view.frame.origin.y = -(tagsTextField.frame.minY)

screenshot

ios swift uiview uikeyboard
3个回答
0
投票

我通过在文本字段点击上设置scrollview内容偏移来修复它。

scrollView.setContentOffset(CGPoint(x: 0, y: tagsTextField.frame.minY), animated: true)

并在键盘上重置关闭。

scrollView.setContentOffset(CGPoint(x: 0.0, y: 0.0), animated: true)

0
投票

键盘框架按键盘高度隐藏文本字段时,可以向上移动框架:

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
    }
}

0
投票

您可以将嵌入视图(可能是导航控制器)的背景颜色设置为与视图背景颜色相同的颜色。

我通常在表单屏幕中执行的操作是将输入字段放在UITableView中。然后,我不是向上移动视图以使当前输入字段可见,而是滚动UITableView

因此,UITableView的背景视图/颜色不会移动。

© www.soinside.com 2019 - 2024. All rights reserved.