【发布时间】:2016-06-06 14:34:23
【问题描述】:
亲爱的,
我有以下场景:
- 我在屏幕“上视图和下视图”中有两个视图
- 上部视图占据整个屏幕,下部视图不可见,因为它向下“其 Y 轴从另一个视图高度的末端开始”
- 当用户按下按钮时,我会向上移动两个视图,以使下部视图可见而上部视图隐藏。
一切都很好,问题出在:
下部视图中有一个文本框,当用户选择它添加文本时,键盘会显示并将所有视图重置为其初始位置,这会破坏“上部视图再次显示”的一切。
这是我用来移动视图的代码:
@IBAction func signInWithEmailPressed(sender: AnyObject) {
UIView.animateWithDuration(1, delay: 0, options: .CurveEaseInOut, animations: {
self.topView.center.y -= self.topView.bounds.height
self.bottomView.center.y -= self.topView.bounds.height
}, completion: { finished in
if(finished) {
self.view.layoutIfNeeded()
}
})
}
不知道为什么它会不断重置所有视图。我们将不胜感激。
谢谢
【问题讨论】:
-
你在使用 AutoLayout/ 约束吗?
-
当您致电
self.view.layoutIfNeeded()时,您更新了aytolayout。对于您的情况,您需要更改约束并在动画块中调用self.view.layoutIfNeeded() -
我没有明确地对控件施加任何限制,但是是的,整个项目都在使用自动布局
-
@iSashok 即使我删除了 self.view.layoutIfNeeded() 它也有相同的行为,因为任何控件都没有任何约束
-
@Mostafa Mohamed Raafat 如果您使用自动布局,编译器默认会为视图添加一些约束。尝试禁用自动布局并更改动画块中的帧
标签: ios swift autolayout