加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 17:23:32 所属栏目:百科 来源:网络整理
导读:我有一个用于注册的iOS页面,如果键盘已启用,我想让它可滚动,因为此刻我无法滚动到页面末尾的注册按钮,键盘会隐藏按钮. 有智能解决方案吗? 解决方法 为了解决你的问题,有很多解决方案.从使用UIScrolView到更改框架或约束. 如果您想使用UIScrolView,您应该将U
我有一个用于注册的iOS页面,如果键盘已启用,我想让它可滚动,因为此刻我无法滚动到页面末尾的注册按钮,键盘会隐藏按钮.

有智能解决方案吗?

解决方法

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

如果您想使用UIScrolView,您应该将UIView注册表格插入到UIScrolView并设置内容大小.

代码狙击手如何处理键盘和scrollview.

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

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

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

}

之后使用方法(keyboardWasShown和keyboardWillBeHidden)的通知来改变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参数一样更改框架或约束.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读