Вот код, который я использовал для моделирования вида «растущий» и «уменьшающийся» при нажатии кнопки «показать больше ...» и «показать меньше ...». Смоделированный ответ от Palyancodr
Этот подход позволяет мне создавать оба представления в раскадровке, чтобы ограничения работали, как и ожидалось, на разных устройствах iOS, и мне не нужно настраивать код всех ограничений.
@IBAction func showMoreOrLessAction(_ sender: Any) {
// if small view showing
if showMoreLargeView.isHidden {
showMoreSmallView.isHidden = true
//showMoreLargeView.isHidden = false
UIView.animate(withDuration: 0.2, delay: 0, options: [], animations: {
self.showMoreLargeView.alpha = 1 // Here you will get the animation you want
}, completion: { _ in
self.showMoreLargeView.isHidden = false // Here you hide it when animation done
})
}
else { // large view showing
//showMoreSmallView.isHidden = false
UIView.animate(withDuration: 0.2, delay: 0, options: [], animations: {
self.showMoreSmallView.alpha = 1 // Here you will get the animation you want
}, completion: { _ in
self.showMoreSmallView.isHidden = false // Here you hide it when animation done
})
showMoreLargeView.isHidden = true
}
}