因此,我有一个UIView
,它有一个CAShapeLayer
作为遮罩,我用它来设置仅左下角和右下角的角半径。我的视图必须将其Y位置从上到下更改,为此,我使用了简单的UIView.animate(withDuration:)
。首先,我将UIView
的蒙版设置为:
myView?.frame = CGRect(x: 0, y: -(viewH), width: self.view.frame.width, height: viewH)
let rectShape = CAShapeLayer()
rectShape.bounds = (myView?.frame)!
rectShape.position = (myView?.center)!
rectShape.path = UIBezierPath(roundedRect: (myView?.bounds)!, byRoundingCorners: [.bottomLeft , .bottomRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath
myView?.layer.mask = rectShape
然后以滑动手势:
UIView.animate(withDuration: 0.4) {
self.myView?.frame.origin = CGPoint.zero
}
我在iPhone 5s上运行代码,一切正常。但是,当我在iPhone 6 plus上运行它时,Y位置更改动画比较滞后。我在UITableView
上有myView
,其滚动动画也很慢。
问题
有谁知道如何用UIView
为CAShapeLayer
制作动画{1>}?
PS 。我的应用程序的目标iOS版本是10.0。我知道对于iOS 11,还有另一种方法可以只为底角设置圆角半径,但是我需要适用于两种iOS版本的解决方案。