我有一个高度增加/减少的动画(隐藏和显示UIDatePicker)。像它应该增加的工作,但我有一些减少的问题。 UIDatePicker缩小并且动画几乎在顶部开始,接近结束,并且开始随着延迟而减少。但如果包括延迟,它仍然需要增加的时间。
增加了UIDatePicker
开始减少
我的viewWillLayoutSubviews()方法
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
frameDatePicker = remindDatePicker.frame
zeroFrameDatePicker = CGRect(x: (frameDatePicker?.origin.x)!, y: (frameDatePicker?.origin.y)!, width: (frameDatePicker?.width)!, height: 0)
if reminderSwitch.isOn {
remindDatePicker.frame = frameDatePicker!
} else {
remindDatePicker.frame = zeroFrameDatePicker!
}
}
我的showDatePicker()动画方法
func showDatePicker() {
UIView.animate(withDuration: animateTime, animations: {
self.remindDatePicker.frame = self.frameDatePicker!
})
}
我的hideDatePicker()动画方法
func hideDatePicker() {
UIView.animate(withDuration: animateTime, animations: {
self.remindDatePicker.frame = self.zeroFrameDatePicker!
})
}
答案 0 :(得分:0)
我怀疑这里真正的问题是拾取器(例如日期选择器)并不打算具有零高度(或任何非常小的高度,实际上)。如果我是你,我会想到一种完全不同的方式将这个选择器带入和移出可见的存在。
Apple在日历应用程序中所做的事情是将选择器保持在正常的固定高度,但增长和缩小超级视图,其clipsToBounds
为真。因此,选择器似乎增长和缩小,但它并非真的。