我在故事板中创建一个视图,其中有一堆文本框,底部有一个按钮。当我在文本框中单击时,会出现键盘。这隐藏了我的一些文本框。所有文本框都位于滚动视图中。故事板(如果不是代码中)有一种方法可以在键盘出现时使滚动视图在所有内容中正确滚动吗?
键盘出现时是否必须动态更改内容大小,或者是否可以设置滚动视图,以便在键盘出现时自动调整大小。
答案 0 :(得分:1)
我认为我遇到了和你一样的问题,我所做的是在键盘出现或隐藏时动态更改滚动视图的contenSize属性。
我在ViewController类中订阅了管理我的scrollview的键盘通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
然后在目标方法中调整大小:
- (void)keyboardWillShow:(NSNotification *)note{
NSDictionary *userInfo = note.userInfo;
NSTimeInterval duration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
UIViewAnimationCurve curve = [userInfo[UIKeyboardAnimationCurveUserInfoKey] integerValue];
//This is the value of the rect where the keyboard is drawn, and may come with height and width swapped
CGRect keyboardFrame = [userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
[UIView animateWithDuration:duration
delay:0
options:UIViewAnimationOptionBeginFromCurrentState | curve
animations:^{
yourScrollableView.frame = ......
}
completion:nil];
}
当然,这同样适用于键盘隐藏。