gpt4 book ai didi

ios - iOS 11 弹出键盘时 UiTextfield 不会向上移动(在以前的版本上工作)

转载 作者:行者123 更新时间:2023-11-28 15:18:11 28 4
gpt4 key购买 nike

问题:在 ios 11 中不工作(但在 ios 8 中工作)

以下代码是用 Swift 2.0 编写的。但是我的应用程序太大,无法一次性迁移代码并发布更新。

目标:我想用 xcode 7 发布一个版本,但在 ios 11 上调试时我得到了一个“开发者磁盘镜像”。那么如何在不迁移代码的情况下修复错误

func viewDidLoad(){

super.baseScrolllView = scrollView
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardAdjust:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardAdjust:"), name:UIKeyboardWillHideNotification, object: nil);
}

基类中的代码

var keyboardIsVisible = false
var baseScrolllView: UIScrollView!
func keyboardAdjust(notification: NSNotification) {

let info = notification.userInfo!
let keyboardHeight:CGFloat = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue().size.height
let duration:Double = info[UIKeyboardAnimationDurationUserInfoKey] as! Double

var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)

if notification.name == UIKeyboardWillShowNotification && keyboardIsVisible == false{

keyboardIsVisible = true

UIView.animateWithDuration(duration, animations: { ()

var contentInset:UIEdgeInsets = self.baseScrolllView.contentInset
contentInset.bottom = keyboardFrame.size.height
self.baseScrolllView.contentInset = contentInset



})


}else {
keyboardIsVisible = false

UIView.animateWithDuration(duration, animations: { ()
var contentInset:UIEdgeInsets = UIEdgeInsetsZero
self.baseScrolllView.contentInset = contentInset
})
}

}

最佳答案

这是我获取键盘高度的方法

@objc func keyboardWillShow(_ notification: Notification) {
guard let userInfo = notification.userInfo,
let keyboardSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue,
let duration = userInfo[UIKeyboardAnimationDurationUserInfoKey] as? Double else { return }

containerViewBottomConstraint.constant = keyboardSize.height
UIView.animate(withDuration: duration) {
self.containerView.layoutIfNeeded()
}
}

关于ios - iOS 11 弹出键盘时 UiTextfield 不会向上移动(在以前的版本上工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46491539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com