当键盘出现时,它会重置内部视图的偏移量

时间:2015-04-17 07:25:39

标签: ios swift uiview uikeyboard

通过点击按钮我可以移动所有内容并在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)并出现键盘时,它会重置所有内容的偏移量。

如何避免它?

1 个答案:

答案 0 :(得分:1)

我猜您正在使用AutoLayout将您的项目放在视图中,这样可以修复您的框架“错位”。添加带有约束的UITextField并更改约束中的内容值。

当您使用tableview.rowHeight = UITableViewAutomaticDimension时,您的行会自动适应新的高度。

除了动画之外,你不应该使用frame,其结果已经是AutoLayout所期望的。