通过点击按钮我可以移动所有内容并在UIViews中显示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)并出现键盘时,它会重置所有内容的偏移量。
如何避免它?
答案 0 :(得分:1)
我猜您正在使用AutoLayout将您的项目放在视图中,这样可以修复您的框架“错位”。添加带有约束的UITextField
并更改约束中的内容值。
当您使用tableview.rowHeight = UITableViewAutomaticDimension
时,您的行会自动适应新的高度。
除了动画之外,你不应该使用frame
,其结果已经是AutoLayout所期望的。