私のアプリでは、メインのビュー コントローラー内に 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 })