在 Swift 中使用动画调整 CALayer 的大小
Posted
技术标签:
【中文标题】在 Swift 中使用动画调整 CALayer 的大小【英文标题】:Resize a CALayer with animation in Swift 【发布时间】:2015-07-25 20:09:24 【问题描述】:我已将 CALayer 添加到图像中,执行以下操作:
var menulayer = CALayer()
menulayer.frame = CGRectMake(0.0, 0.0, menuimage.frame.size.width, menuimage.frame.size.height);
menulayer.backgroundColor = bartint.CGColor
menulayer.opacity = 1
menuimage.layer.addSublayer(menulayer)
我想为图层设置动画,使其从左到右显示图像。我试过这个:
let width = CGFloat(0)
CATransaction.begin()
CATransaction.setAnimationDuration(2.0)
self.menulayer.bounds = CGRectMake(0, 0, width , 50)
CATransaction.commit()
但是动画从图像的中心开始,我怎样才能让它从图像的左边缘开始?
【问题讨论】:
【参考方案1】:因此,为图层的原点设置动画以将其向右移动,直到您的图像视图完全显示。您需要设置menuImage.layer.masksToBounds = true
,这样当它滚动到图像视图的框架之外时,覆盖层是不可见的。
【讨论】:
非常感谢!任何有兴趣的人都可以在 swift 中使用menuImage.layer.masksToBounds = true
。
糟糕。是的,我有时还是会使用 Objective-C 语法。以上是关于在 Swift 中使用动画调整 CALayer 的大小的主要内容,如果未能解决你的问题,请参考以下文章
带有 CATransaction 的 CALayer 动画在视图调整大小之前表现不同