iOS 13中的UIView动画中断

时间:2020-09-21 13:24:46

标签: ios14 xcode12

我的动画代码不起作用。在单击导航栏上的日历图标之前,日历的使用似乎是从顶部开始的,但是在更新为新的Xcode 12之后,该动画无法正常工作。

func show() {
    self.backgroundView?.alpha = 0
    
    self.doneBarView?.translatesAutoresizingMaskIntoConstraints = false
    self.selectorView?.translatesAutoresizingMaskIntoConstraints = false
    
    self.containerView?.addSubview(self.backgroundView!)
    self.containerView?.addSubview(self.selectorView!)
    self.containerView?.addSubview(self.doneBarView!)
    
    self.containerView?.setNeedsLayout()
    self.containerView?.layoutIfNeeded()
    
    if (self.selectorViewHeightOrNil) != nil {
        self.selectorView?.snp.makeConstraints({ (make) in
            make.height.equalTo(self.selectorViewHeightOrNil!.floatValue)
        })
    }
    
    self.containerView?.setNeedsLayout()
    self.containerView?.layoutIfNeeded()
    
    self.startOriginY = Float((self.containerView?.frame.size.height)!)
    var endOriginY = (self.containerView?.frame.size.height)! - (self.doneBarView?.frame.size.height)! - (self.selectorView?.frame.size.height)!
    
    if (!self.fromBottom!) {
        self.startOriginY = -(Float(self.doneBarView!.frame.size.height + self.selectorView!.frame.size.height))
        endOriginY = 0
    }
    
    self.doneBarView?.snp.makeConstraints({ (make) in
        self.doneBarTopConstraint = make.top.equalTo(self.startOriginY!).constraint
    })
    
    self.selectorView?.snp.makeConstraints({ (make) in
        make.left.right.equalTo(NumiLayoutConstant.zeroConstant)
        make.top.equalTo((self.doneBarView?.snp.bottom)!)
    })
    
    self.containerView?.setNeedsLayout()
    self.containerView?.layoutIfNeeded()
    
    self.doneBarTopConstraint?.update(offset: endOriginY)
    
    self.animating = true
    self.selectorView?.alpha = 0.0

    UIView.animate(withDuration: 0.5, animations: {
        self.backgroundView?.alpha = 0.5
        self.selectorView?.alpha = 1.0
        self.containerView?.layoutIfNeeded()
        
    }) { (_) in
        self.animating = false
    }
}

在早期版本上运行正常。

0 个答案:

没有答案