防止键盘消失重置视图高度

3
我正在使用Storyboard(Xcode6 beta7)制作iOS 8的登录屏幕。以下是基本想法的图像: enter image description here 点击任何文本字段都会弹出键盘,点击文本字段外部会使用以下方法将其关闭:
self.view.endEditing(true)

点击登录按钮后,键盘会消失。

当用户输入无效的登录凭证时,我希望对话框视图的高度增加并显示一些错误消息:

enter image description here

我使用以下函数进行动画处理:

func increaseHeight(view: UIView, increment: CGFloat) {

    UIView.animateWithDuration(1.0,
        delay: 0.0,
        usingSpringWithDamping: 0.3,
        initialSpringVelocity: 3.0,
        options: UIViewAnimationOptions.CurveEaseInOut,
        animations: ({
            view.frame = CGRect(
                x: view.frame.origin.x,
                y: view.frame.origin.y,
                width: view.frame.width,
                height: view.frame.height + increment
            )
        }),
        completion: nil
    )
}

如果我调用这个函数,比如按下登录按钮,一切都按照我的要求进行。动画执行,并显示错误信息。 问题在于 然而,如果我先开始编辑任何文本框(即弹出键盘),然后再按登录按钮,动画会执行 - 但会反弹回到原始高度。
我该如何使增量高度在键盘被解除后仍然保持不变?
1个回答

0

如果您正在使用自动布局,您需要更改视图的约束而不是框架。

heightOfViewConstraint.constant += increment

UIView animation....{
    self.layoutIfNeeded()
}

如果您正在使用自动布局和约束条件,这应该可以使您的视图保持拉伸状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接