2017-09-26 49 views
0

我正在开发iOS应用和 我有一个消息视图,我要处理这种情况: - >我有一个输入视图在视图的底部,除了用户被阻止/限制发送消息的一些标准之外,需要始终可见。 - >当输入视图被聚焦时,出现键盘,我想将视图与键盘框一起移动。 - >我希望键盘以表格视图滚动的方式交互式地关闭。有人说,视图应该对键盘平移手势做出响应,并随着移动。 - >我尝试使用输入附件视图,但问题是当键盘被表视图滚动解除时,输入视图也被解散。 - >我也尝试使用willShow/willHide/willChangeFrame观察者,但与此,响应是不重要的,它不响应键盘交互解雇。 有人得到这个解决方案... 感谢您的时间。处理与iOS中雨燕键盘移动手势输入文本视图运动

回答

1

夫特3+: 我有采取的视图成TextView的背景和设定的视图(前置,底部,固定的高度)该约束。创建底部约束@IBOutlet和管理,下面的代码:

class ViewController: UIViewController { 

    @IBOutlet var bottomConstraint: NSLayoutConstraint! 
    @IBOutlet var view_TextViewBg: UIView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     NotificationCenter.default.addObserver(
      self, 
      selector: #selector(keyboardDidShow(_:)), 
      name: NSNotification.Name.UIKeyboardWillShow, 
      object: nil) 
     NotificationCenter.default.addObserver(
      self, 
      selector: #selector(keyboardDidHide(_:)), 
      name: NSNotification.Name.UIKeyboardWillHide, 
      object: nil) 

     let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(sender:))) 
     // tap.delegate = self 
     view.addGestureRecognizer(tap) 

    } 
    func handleTap(sender: UITapGestureRecognizer? = nil) { 
     //dissmiss your keyboard here 
    } 

    //MARK: Keyboard show 

    func keyboardDidShow(_ notification: Notification) { 
     let params = notification.userInfo 
     let rect: CGRect? = (params?[UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue 
     bottomConstraint.constant = (rect?.size.height)! 
    } 

    //MARK: Keyboard hide 

    func keyboardDidHide(_ notification: Notification) { 
     bottomConstraint.constant = 0 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

enter image description here