从键盘调整文本视图的方法不起作用。 iOS版

时间:2013-09-05 22:40:47

标签: ios animation uitextview

这个代码在Stack溢出和一般的互联网上看到很多。它用于调整文本视图的大小,以便您可以查看所有内容。它工作正常,然后停止工作。(即,一旦框架改变并可以滚动,现在它什么都不做。)是否有人建议为什么这停止工作以及如何解决它。

我已在多个地方(使用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];
}

谢谢!

1 个答案:

答案 0 :(得分:0)

如果此方法对您有所帮助,请告诉我,我还将演示文件上传到Github。 它是关于调整UITextView的大小,但是当显示键盘时可以应用于其他对象。

https://stackoverflow.com/a/18642479/1363634