我有一个UIScrollView,在屏幕的下半部分是一个文本字段。当我选择文本字段时,键盘显示在文本字段上方。 UIScrollView中的UIView不够大,无法向上滚动并为键盘释放一些空间。所以我试图以编程方式扩大UIView。 这就是我所拥有的:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
UIScrollView *scrollView = (UIScrollView *)[[self view] viewWithTag: 2];
UIView *contentview = [[self view] viewWithTag: 3];
CGRect rect = contentview.frame;
rect.size.height = 650;
contentview.frame = rect;
[scrollView setContentSize: contentview.frame.size];
//first try
rect.origin.y = 450;
[scrollView scrollRectToVisible: rect animated: YES];
//second try
CGPoint point = CGPointMake(0, 450);
[scrollView setContentOffset: point animated: YES];
return YES;
}
感谢。
答案 0 :(得分:3)
您可以注册以在视图控制器中接收UIKeyboardWillShowNotification。然后将视图控制器的视图框向上移动通知中提供的键盘大小。
CGRect frame = self.view.frame;
frame.origin.y -= keyboard.size.height;
self.view.frame = frame;
对UIKeyboardWillHideNotification采取相反的行动。