这是屏幕的整体布局。该按钮位于滚动视图内,以便当第一个响应者出现时,该按钮将被推送到用户视图。然后回落时,第一响应者辞职ScrollView不断推送文本字段
在第二张图片是什么样子时,第一反应是存在等。按钮确实向上移动,但现在文本字段被推离屏幕。如果有一种方法可以让按钮向上移动而不将文本框从屏幕上移开,那就太棒了。
@IBOutlet weak var ScrollView: UIScrollView!
@IBOutlet weak var TextField: UITextField!
@IBOutlet weak var testButton: UIButton!
func closeKeyboard(){
self.view.endEditing(true)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
closeKeyboard()
}
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(scrollviewtest.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(scrollviewtest.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
}
func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
}
}
}
是否使用'AutoLayout'?你如何移动视图?向上移动视图的代码。 – Rikh
为什么当你提交响应者时你没有设置框架 –
发表了一些代码,然后只有人可以找出任何解决方案,但如果按钮和“UITextField”在同一个“UIScrollView”上,那么你必须重新设置框架'UIButtons '。 – Suryakant