1

我正在尝试翻转一个视图并显示一个不同的视图,其中的动画看起来像是在翻转一张卡片。

这一切都运作良好。我制作了一个嵌套 2 个子视图的父视图,这些子视图是被翻转的视图。我的父视图通过(layer.cornerRadius = x) 和 layer.masksToBounds 具有圆角,子视图不会越过父视图的边界。

无论如何,当我在此动画期间翻转视图时,角落不会变圆。我认为这可能是因为当翻转发生时,即使有方角,子视图也不会夹在父视图上,但后来我也尝试向子视图添加一个cornerRadius,这在我的情况下再次不起作用,因为其中一个子视图嵌套自己的子视图,然后再次剪辑边界,我根本不明白!

我写了一个函数来翻转视图:

private func flip(firstView: UIView, secondView: UIView) {

     let transitionOptions: UIViewAnimationOptions = [.transitionFlipFromRight, .showHideTransitionViews]
    UIView.transition(with: firstView, duration: 1.0, options: transitionOptions, animations: {
        firstView.isHidden = !firstView.isHidden
    })

    UIView.transition(with: secondView, duration: 1.0, options: transitionOptions, animations: {
        secondView.isHidden = !secondView.isHidden
    })
}

对于圆角,我刚刚在情节提要中添加了一个用户定义的运行时属性:layer.cornerRadius Number 13,以及 layer.masksToBounds Boolean true

我真的很感激一些帮助。

非常感谢!

4

0 回答 0