【问题标题】:Black color appears when moving origin to top when keyboard pops键盘弹出时将原点移动到顶部时出现黑色
【发布时间】:2019-04-15 15:34:35
【问题描述】:

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

视图层次结构是

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

【问题讨论】:

    标签: ios swift uiview uikeyboard


    【解决方案1】:

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

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

    并在键盘关闭时重置。

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

    【讨论】:

    • 您的问题没有描述您使用的是视图、滚动视图还是tablview...
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-01-16
        • 2012-07-25
        • 2018-06-19
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        相关资源
        最近更新 更多