启用键盘时可以使iOS页面可滚动

时间:2014-10-16 06:59:11

标签: ios xcode swift scroll keyboard

我有一个用于注册的iOS页面,如果键盘已启用,我想让它可滚动,因为此刻我无法滚动到页面末尾的注册按钮,键盘会隐藏按钮

有智能解决方案吗?

1 个答案:

答案 0 :(得分:1)

为了解决你的问题,有很多解决方案。从使用UIScrolView到更改框架或约束。

如果您想使用UIScrolView,请将UIView注册表格添加到UIScrolView并设置内容大小。

代码狙击手如何处理键盘和滚动视图。

首先,您应该知道何时显示和隐藏键盘。使用通知:

- (void)registerForKeyboardNotifications
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWasShown:)
                                                 name:UIKeyboardDidShowNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillBeHidden:)
                                             name:UIKeyboardWillHideNotification object:nil];

}

之后,使用通知的方法(keyboardWasShownkeyboardWillBeHidden)来更改contentInsets

更改contentInsets

的示例
- (void)keyboardWasShown:(NSNotification*)aNotification
{
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
    scrollView.contentInset = contentInsets;
    scrollView.scrollIndicatorInsets = contentInsets;
}

- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
    UIEdgeInsets contentInsets = UIEdgeInsetsZero;
    scrollView.contentInset = contentInsets;
    scrollView.scrollIndicatorInsets = contentInsets;
}

最后解决方案取决于您的选择,您可以更改框架或约束,以及UIScrolView参数。