UIView.animateWithDuration在初始动画后不动画

时间:2018-12-05 17:44:11

标签: swift animation

我有两种方法:

    private func showPicker() {

        UIView.animate(withDuration: 0.3,
            animations: {
                var pickerFrame = self.vPickerWrapper.frame
                pickerFrame.origin.y = self.view.frame.size.height - 300.0
                self.vPickerWrapper.frame = pickerFrame
                self.bIsShowingPicker = true
                self.view.layoutIfNeeded()
                self.view.updateConstraintsIfNeeded()
        })
    }

    private func closeThePicker() {
        UIView.animate(withDuration: 0.3,
           animations: {
            var pickerFrame = self.vPickerWrapper.frame
            pickerFrame.origin.y = self.view.frame.size.height + 1
            self.vPickerWrapper.frame = pickerFrame
            self.bIsShowingPicker = false
            self.view.layoutIfNeeded()
            self.view.updateConstraintsIfNeeded()
        })

....

当用户触摸一个要求他们从pickerview中填充的文本字段时,将调用第一个方法。在包装器中触摸关闭按钮或选择按钮时,将调用第二种方法。

该包装器是在情节提要中创建的,具有约束条件(拖尾,前导底部)以将其定位在屏幕之外。最初,我将底部约束条件设置为IBOutlet,并希望更改其常量以处理动画。 (我在此VC中使用其他对象)。然后,我尝试使用CGAffineTransform.translate和.identity进行工作,最后开始使用框架。在所有三种情况下,包装器都会显示但不会关闭(移回屏幕)。

在将其框架设置为pickerFrame之后,这是vPickerWrapper的值:

pickerFrame CGRect  (origin = (x = 0, y = 668), size = (width = 375, height = 300)) 

这是我所期望的,只是模拟中没有任何动画。视图永远不会动。知道为什么显示器没有以新坐标显示它吗?

0 个答案:

没有答案