IOS错误的动画显示

时间:2016-11-22 21:43:42

标签: ios swift3 uiviewanimation

我有一个高度增加/减少的动画(隐藏和显示UIDatePicker)。像它应该增加的工作,但我有一些减少的问题。 UIDatePicker缩小并且动画几乎在顶部开始,接近结束,并且开始随着延迟而减少。但如果包括延迟,它仍然需要增加的时间。

增加了UIDatePicker

Encreased UIDatePicker

开始减少

Starting of decreasing

我的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!
    })
}

1 个答案:

答案 0 :(得分:0)

我怀疑这里真正的问题是拾取器(例如日期选择器)并不打算具有零高度(或任何非常小的高度,实际上)。如果我是你,我会想到一种完全不同的方式将这个选择器带入和移出可见的存在。

Apple在日历应用程序中所做的事情是将选择器保持在正常的固定高度,但增长和缩小超级视图,其clipsToBounds为真。因此,选择器似乎增长和缩小,但它并非真的。