我无法在这里为我的问题找到解决方案,这似乎只是常规"当键盘出现时向上移动视图的一小步#"
虽然这正是我的需要,但我想在iPhone 5S或iPhone SE上发生 only 。
所以到目前为止我已经得到了以下代码,它可以在iOS 11中正常运行:
List<ACHTransaction> transactions =
transactionDao.retrieveTransactions(getJobParameters()).stream()
.filter(t -> t.getFileHash() == null)
.collect(Collectors.toList());
我已经尝试了几件事情将这个用于if if case并且我已经搜索了如何仅针对设备类型定义事物但是作为初学者(第6周学习......)我&#39到目前为止完全失败了。
答案 0 :(得分:-1)
@rmaddy给了我正确的提示后,我自己给出了答案。我所做的就是添加一个if情况,用view.bounds.height
检查视图大小(对于iPhone 5来说是568pt)。
所以上面的代码改为:
override func viewDidLoad() {
super.viewDidLoad()
let screenHeight = view!.bounds.height
//Checking the view size in pt here
if screenHeight <= 568 {
//add this to perform only for devices with view size 568 or lower
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
}
@objc func keyboardWillHide() {
self.view.frame.origin.y = 0
}
@objc func keyboardWillChange(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
if myTextField.isFirstResponder {
self.view.frame.origin.y = -keyboardSize.height
}
}
}