В моем приложении у меня есть два вида в моем основном контроллере. Один из них - для ввода информации о вашем бюджете. Другой - просмотр текущего состояния вашего бюджета.Проблемы с анимационным представлением для новых размеров экрана
Когда кнопка ввода отображается в окне ввода, это представление скользит вниз, чтобы открыть текущий вид бюджета.
In 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
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 })
}
Кнопка Enter:
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 })
Используете ли вы autolayout? Если это так, вы можете подумать об анимации ограничений вместо ширины/высоты/позиции представлений. – zisoft
Нет. Раньше я пытался использовать автомат, но мне это действительно не понравилось. Я использую его для Today Widget, так как это гораздо более простой интерфейс, но я хочу избежать его использования для основного приложения. Нет ничего плохого в коде, который может вызвать проблему, которую вы видите? – user3746428
Извините, я не вижу ничего очевидного. Поместите несколько инструкций println() в свой код, чтобы проверить, что-то происходит с центральной координатой. И лучше использовать 'CGPoint (...)' вместо 'CGPointMake (...)' – zisoft