故事板滚动视图与文本框

时间:2014-08-12 15:12:51

标签: ios uiscrollview xcode-storyboard

我在故事板中创建一个视图,其中有一堆文本框,底部有一个按钮。当我在文本框中单击时,会出现键盘。这隐藏了我的一些文本框。所有文本框都位于滚动视图中。故事板(如果不是代码中)有一种方法可以在键盘出现时使滚动视图在所有内容中正确滚动吗?

键盘出现时是否必须动态更改内容大小,或者是否可以设置滚动视图,以便在键盘出现时自动调整大小。

1 个答案:

答案 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];

}

当然,这同样适用于键盘隐藏。