2016-03-27 17 views
0

た後、私は縮小し、私のコントロールを移動するには、このコードを持っている:変更UIコントロールの高さは、キーボード

-(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]; 
    }]; 
} 

これは、通常のキーボードで完璧に動作しますが、私は絵文字キーボードボタンをタップしたときUIコントロールの位置は、アニメーション化ではなく、上向きにオフセットしてジャンプするのではなく、[notification userInfo]から取得した値が絵文字キーボードに間違っていると思います。

ここで何が起こっているのですか?

+0

「UIKeyboardFrameBeginUserInfoKey」ではなく「UIKeyboardFrameEndUserInfoKey」を使用するとどうなりますか? – Azat

+0

@Azat実際に動作します!理由を説明できますか? – Erik

+0

これを回答として追加しました – Azat

答えて

0

UIKeyboardFrameBeginUserInfoKeyUIKeyboardFrameEndUserInfoKeyを置き換えます。このキーには、システムが実行するすべてのアニメーションの後のキーボードサイズに関する情報が含まれています。もっと読むことができますthis answer

関連する問題