2016-03-01 1 views
0

J'utilise iOS9 avec swift2.0.I mon contrôleur de vue traitant deux champs de texte et quelques labels.Ces deux champs de texte contient dans stackview et aussi des étiquettes contient dans un autre stackview.I a déjà installé l'application universelle à la fois les options de portrait et de paysage fonctionnent bien.Mais quand je clique sur textfields alors le clavier est en place à ce moment-là, le clavier couvre les champs de texte, donc je ne vois pas les textfields.Comment résoudre ce problème et comment gérer toutes les contraintes quand le clavier est levé et en bas?UIStackview avec UIKeyboard dans swift2.0

override func viewWillAppear(animated: Bool) { 

    super.viewWillAppear(animated) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector:("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object:nil) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector:("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil) 

} 
override func viewWillDisappear(animated: Bool) { 

    super.viewWillDisappear(animated) 
    NSNotificationCenter.defaultCenter().removeObserver(self) 
} 

func keyboardWillShow(notification:NSNotification){ 

    print("keyboardWillShow") 
    var info = notification.userInfo! 
    let keyboardFrame:CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 
    print(keyboardFrame) 
    UIView.animateWithDuration(0.1, animations: {() -> Void in 

    }) 
} 

func keyboardWillHide(notification:NSNotification){ 

     print("keyboardWillHide") 

} 

enter image description here

enter image description here

Répondre

2
func keyboardWillShow(sender: NSNotification){ 

    var info = sender.userInfo! 
    let keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 


    UIView.animateWithDuration(0.1, animations: {() -> Void in 

     self.view.center.y = self.view.center.y - keyboardFrame.size.height 
    }) 


} 
func keyboardWillHide(sender: NSNotification){ 

    var info = sender.userInfo! 
    let keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 

    UIView.animateWithDuration(0.1, animations: {() -> Void in 
     self.view.center.y = self.view.center.y + keyboardFrame.size.height 
    }) 

} 
+0

Sa vue en mouvement lorsque vous cliquez deux textfields.Its ne fonctionne pas correctement. – IKKA

+0

ce que vous voulez? @jasper déplace votre vue vers le clavier supérieur, si vous voulez déplacer simplement le champ de texte, vous pouvez définir votre centre de texte au lieu de voir comme textfield.center.y et également détecter votre champ de texte par tag. –