ios - 显示键盘并且键盘顶部的预测文本框被切换 View swift 上升,给用户留下黑屏

标签 ios swift

我有一个错误,当显示键盘并且切换键盘顶部的预测文本框时, View 会弹出,让用户看到黑屏。发生这种情况的原因是因为我使用了 -= 运算符,每次调用此方法时都会使值复合。该方法可以连续调用多次。我正试图找到一种方法来处理这个问题。

func getKeyboardHeight(notification: NSNotification) -> CGFloat {

    let userInfo = notification.userInfo
    let keyboardSize = userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue
    return keyboardSize.CGRectValue().height

}

func keyboardWillShow(notification: NSNotification) {

    if bottomTextField.isFirstResponder() {
        self.view.frame.origin.y -= getKeyboardHeight(notification)
    }

}

func keyboardWillHide(notification: NSNotification) {

    if bottomTextField.isFirstResponder() {
        self.view.frame.origin.y += getKeyboardHeight(notification)
    }

}

最佳答案

通过将 self.view.frame.origin.y -= getKeyboardHeight(notification) 切换为 view.frame.origin.y = -getKeyboardHeight(notification) 解决了我的问题。

func keyboardWillShow(notification: NSNotification) {

    if bottomTextField.isFirstResponder() {
        self.view.frame.origin.y = -getKeyboardHeight(notification)
    }

}

关于ios - 显示键盘并且键盘顶部的预测文本框被切换 View swift 上升,给用户留下黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32303167/

相关文章:

ios - 清除搜索结果后,Swift Tableview 搜索结果单元格选择复选标记不保存

ios - 使用生成功能为图像添加动画

ios - 具有不确定数量的 UIImageViews 的 UITableViewCell

swift - 如何在 Firebase Swift 中访问具有特定 UID 的用户的数据?

ios - 创建新行时调整 UICollectionView 的大小

ios - 如何将值属性绑定(bind)到按钮可见性?

ios - FCM 无法订阅主题 : 000000005eb68872 with token: (null)

ios - 是否可以在 AKAudioPlayer 上使用 AKAmplitudeTracker 并测量振幅变化?

ios - Swift 中的字符和字符串

ios - glkView 和更新方法有什么区别?