我正在尝试翻转视图并显示一个不同的视图,动画看起来像翻转卡片。
这一切都运作良好。我创建了一个嵌套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
})
}
对于圆角,我刚在storyboard中添加了一个用户定义的运行时属性:layer.cornerRadius Number 13,以及layer.masksToBounds Boolean true
我真的很感激一些帮助。
非常感谢!