当键盘出现时,它会重置内部视图的偏移量
When keyboard appears it resets offset of inside views
通过点击按钮,我将向上移动所有内容并在我正在移动的 UIView 之一中显示 UITextField:
UIView.animateWithDuration(0.7, delay: 0.0, options: .CurveEaseOut, animations: {
self.logo.frame.offset(dx: 0, dy: -200)
}, completion: nil)
UIView.animateWithDuration(0.2, delay: 0.1, options: .CurveEaseOut, animations: {
self.fill.frame.offset(dx: 0, dy: -230)
}, completion: nil)
UIView.animateWithDuration(0.3, delay: 0.5, options: .CurveEaseOut, animations: {
self.form.frame.offset(dx: 0, dy: -240)
self.form.alpha = 1.0
}, completion: nil)
但是当我点击 UITextfield(在 UIView 表单中)并且出现键盘时,它会重置所有内容的偏移量。
如何避免?
我猜你正在使用 AutoLayout 将你的项目放在你的视图中,它想要修复你的框架 "misplacement"。添加带有约束的 UITextField
并更改内容约束中的值。
此外,当您使用 tableview.rowHeight = UITableViewAutomaticDimension
时,您的行会自动适应新的高度。
您不应该将 frame
用于动画以外的任何其他内容,因为动画的结果已经是 AutoLayout 所期望的。
通过点击按钮,我将向上移动所有内容并在我正在移动的 UIView 之一中显示 UITextField:
UIView.animateWithDuration(0.7, delay: 0.0, options: .CurveEaseOut, animations: {
self.logo.frame.offset(dx: 0, dy: -200)
}, completion: nil)
UIView.animateWithDuration(0.2, delay: 0.1, options: .CurveEaseOut, animations: {
self.fill.frame.offset(dx: 0, dy: -230)
}, completion: nil)
UIView.animateWithDuration(0.3, delay: 0.5, options: .CurveEaseOut, animations: {
self.form.frame.offset(dx: 0, dy: -240)
self.form.alpha = 1.0
}, completion: nil)
但是当我点击 UITextfield(在 UIView 表单中)并且出现键盘时,它会重置所有内容的偏移量。
如何避免?
我猜你正在使用 AutoLayout 将你的项目放在你的视图中,它想要修复你的框架 "misplacement"。添加带有约束的 UITextField
并更改内容约束中的值。
此外,当您使用 tableview.rowHeight = UITableViewAutomaticDimension
时,您的行会自动适应新的高度。
您不应该将 frame
用于动画以外的任何其他内容,因为动画的结果已经是 AutoLayout 所期望的。