2016-03-27 18 views
0

sonra küçültmek ve benim denetimleri taşımak için bu kod var:Değişim UI kontrol yüksekliği klavyenin

-(void)keyboardWillShow:(NSNotification *)notification { 
    NSValue *value = [notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; 
    NSTimeInterval interval = 0; 
    [value getValue:&interval]; 

    CGSize keyboardSize = [[notification.userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    [UIView animateWithDuration:interval animations:^{ 
     self.composeBarBottomConstraint.constant = (-1) * keyboardSize.height; 
     [self.view layoutIfNeeded]; 
    }]; 
} 

Bu normaldir klavye ile mükemmel çalışır, ancak ben emoji klavye düğmesine dokunun zaman UI kontrolleri pozisyonun olması gereken yerde değil (yukarı doğru) ve animasyon yapmaktan ziyade atlar - bana [notification userInfo]'dan aldığım değerleri emoji klavyesinde yanlış olduğunu düşünüyorum.

Burada neler olup bittiğine dair bir fikrin var mı?

+0

UIKeyboardFrameBeginUserInfoKey' yerine "UIKeyboardFrameEndUserInfoKey" kullanmayı denerseniz ne olur? – Azat

+0

@Azat aslında işe yarıyor! Nedenini açıklar mısınız? – Erik

+0

Bunu yanıt olarak ekledim – Azat

cevap

0

UIKeyboardFrameBeginUserInfoKey'u UIKeyboardFrameEndUserInfoKey olarak değiştirin. Bu anahtar, sistemin gerçekleştireceği tüm animasyonlardan sonra klavye boyutuyla ilgili bilgileri içerir. Daha fazlasını okuyabilirsiniz this answer