我在我的故事板中有一个视图来显示用户登录表单,因此它看起来像这样:主视图->滚动视图->内容视图->两个文本字段和位于视图顶部的登录按钮以及位于底部的一个注册按钮。我使用自动布局,底部按钮有底部空间约束。当我点击文本字段并出现键盘时,我希望滚动视图更改大小以适合可见矩形区域,但内容大小应保持不变以便向下滚动到注册按钮,但是当滚动视图大小变化时,按钮会向上移动。我该如何实现我的想法?
当键盘出现时,我使用以下代码:
- (void)keyboardWillShow:(NSNotification *)aNotification
{
NSDictionary *info = [aNotification userInfo];
NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardFrame = [kbFrame CGRectValue];
CGSize s = self.scrollView.contentSize;
CGFloat height = keyboardFrame.size.height;
self.scrollViewBottomLayoutConstraint.constant = height;
[UIView animateWithDuration:animationDuration animations:^{
[self.view layoutIfNeeded];
[self.scrollView setContentSize:s];
}];
}