这个代码在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];
}
谢谢!
答案 0 :(得分:0)
如果此方法对您有所帮助,请告诉我,我还将演示文件上传到Github。 它是关于调整UITextView的大小,但是当显示键盘时可以应用于其他对象。