1

私のアプリでは、メインのビュー コントローラー内に 2 つのビューがあります。1 つは、予算に関する詳細を入力するためのものです。もう 1 つは、予算の現在の状態を表示するためのものです。

入力ビューで入力ボタンをタップすると、そのビューが下にスライドして現在の予算ビューが表示されます。

viewWillAppear には、入力ボタンがタップされたがビューが移動されていない場合に実行されるコードがいくつかあります (これは、アプリが完全に閉じられて再度開かれたときに発生します)。

リセット ボタンは、入力ボタンの反対のことを行い、ビューを上にスライドさせます。

問題は、リセット ボタンをタップすると、ビューが上にスライドし始めた後、ビューの下部近くで停止することがあるということです。iPhone 6 と iPhone 6 Plus で動作するようにアプリを更新する前は、これはすべてうまく機能していたので、座標計算に何か問題があると思います。私はそれを理解することができませんでした。詰まった時の様子はこんな感じ。

ここに画像の説明を入力

リセットボタン:

    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

ビューが表示されます:

        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 })
4

1 に答える 1