为新屏幕尺寸设置动画视图的问题

时间:2014-10-05 15:35:19

标签: ios uiview swift animatewithduration

在我的应用中,我的主视图控制器中有两个视图。一个是输入有关预算的详细信息。另一种是查看预算的当前状态。

当在输入视图上点击输入按钮时,该视图向下滑动以显示当前预算视图。

在viewWillAppear中,我有一些代码,如果点击了输入按钮但是视图没有被移动(当应用程序完全关闭并重新打开时会发生这种情况),会执行一些代码。

重置按钮与输入按钮相反,并将视图向上滑动。

问题在于,有时当点击重置按钮时,视图会开始向上滑动,但会在视图底部附近停止。在我更新我的应用程序以使用iPhone 6和iPhone 6 Plus之前,这一切都很有效,所以我认为我的坐标计算有问题。我还没有能够弄明白。以下是它卡住时的样子:

enter image description here

重置按钮:

    self.budgetEntryView.hidden = false
    resetButtonNav.enabled = false

    UIView.animateWithDuration(0.3, delay: 0, options: .CurveLinear, animations: {
        self.budgetEntryView.center = CGPointMake(self.budgetEntryView.center.x, self.budgetEntryView.center.y - 500)
        }, completion: { (finished:Bool) in
            self.budgetDisplayView.hidden = true

viewWillAppear中:

        if enterButtonTapped == true && self.budgetEntryView.center.y != 784 {

        UIView.animateWithDuration(0.3, delay: 0, options: .CurveLinear, animations: {
            self.budgetEntryView.center = CGPointMake(self.budgetEntryView.center.x, self.budgetEntryView.center.y + 500)
            }, completion: { (finished:Bool) in self.budgetEntryView.hidden = true })
        }

输入按钮:

        UIView.animateWithDuration(0.3, delay: 0, options: .CurveLinear, animations: {
        self.budgetEntryView.center = CGPointMake(self.budgetEntryView.center.x, self.budgetEntryView.center.y + 500)
        }, completion: { (finished:Bool) in self.budgetEntryView.hidden = true })

1 个答案:

答案 0 :(得分:0)

一旦我按照建议使用println来解决问题,修复就相当简单了。

基本上,我只需添加视图将在新屏幕尺寸上定位的坐标,如下所示:

    if enterButtonTapped == true && self.budgetEntryView.center.y != 784 && self.budgetEntryView.center.y != 868 && self.budgetEntryView.center.y != 740 && self.budgetEntryView.center.y != 833.5 {