我正在使用Storyboard(Xcode6 beta7)在iOS 8中创建登录屏幕。这是基本想法的图像:
按下任何一个文本区域会弹出键盘,按下它们之外的任何一个键盘会再次使用:
self.view.endEditing(true)
因此按下登录按钮会使键盘消失。
当用户输入无效的登录凭据时,我希望对话框视图的高度增加并显示一些错误消息:
我使用以下功能使用动画执行此操作:
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
)
}
如果我调用此功能,请按“登录”按钮,它按照我的意愿工作。执行动画并显示错误消息。
解决问题
但是,如果我首先开始编辑任何文本字段(即启动键盘)然后按下登录按钮,则会执行动画 - 但它会反弹回其原始高度。
键盘解除后如何才能使高度增量保持不变?
答案 0 :(得分:0)
如果您使用自动布局,则需要更改约束而不是视图的框架。
heightOfViewConstraint.constant += increment
UIView animation....{
self.layoutIfNeeded()
}
这应该让您的视图得到延伸,但前提是您使用自动布局和约束。