我有一个用于注册的iOS页面,如果键盘已启用,我想让它可滚动,因为此刻我无法滚动到页面末尾的注册按钮,键盘会隐藏按钮
有智能解决方案吗?
答案 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];
}
之后,使用通知的方法(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
参数。