0

このコードは、スタック オーバーフローやインターネット全般でよく見られます。すべてのコンテンツを表示できるように、テキスト ビューのサイズを調整するために使用されます。それは私にとってはうまく機能していましたが、機能しなくなりました.(つまり、フレームが変更されてスクロールできるようになったので、今は何もしません)。

複数の場所で(NSLogを使用して)呼び出されることを確認しました。

-(void)moveTextViewForKeyboard:(NSNotification*)aNotification up:(BOOL)up {

       NSDictionary* userInfo = [aNotification userInfo];
       NSTimeInterval animationDuration;
       UIViewAnimationCurve animationCurve;
       CGRect keyboardEndFrame;

       [[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] getValue:&animationCurve];
       [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] getValue:&animationDuration];
       [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];

       [UIView beginAnimations:nil context:nil];
       [UIView setAnimationDuration:animationDuration];
       [UIView setAnimationCurve:animationCurve];

       CGRect newFrame = indexCardText.frame;
       CGRect keyboardFrame = [self.view convertRect:keyboardEndFrame toView:nil];
       keyboardFrame.size.height -= self.tabBarController.tabBar.frame.size.height;
       newFrame.size.height -= keyboardFrame.size.height * (up?1:-1);
       indexCardText.frame = newFrame;  
       [UIView commitAnimations];
}

ありがとう!

4

1 に答える 1