【发布时间】:2021-01-20 00:44:27
【问题描述】:
我想要一个这样的微光动画:https://gph.is/g/amWgbvj。 (这个是在WebApp中使用库:https://github.com/dvtng/react-loading-skeleton创建的)
我尝试使用带有不透明度的 GradientLayer 通过所有子视图创建 Shimmer 动画:
gradientLayer.colors = [Colors.tokenDark20.cgColor, Colors.tokenDark10.cgColor, Colors.tokenDark20.cgColor]
gradientLayer.opacity = 0.5
但我得到了动画:https://gph.is/g/4L3K01P。
更多的努力:
我尝试使用库:https://github.com/gonzalonunez/Skeleton,尝试从左到右链接动画,但我无法为所有子视图制作相同长度的渐变形状:
extension ShimmerExampleCell: SkeletonOwner {
var gradientLayers: [CAGradientLayer] {
return [imagePlaceholderView.gradientLayer, titlePlaceholderView.gradientLayer, subtitlePlaceholderView.gradientLayer]
}
func slide(to dir: SkeletonDirection, group: ((CAAnimationGroup) -> Void) = { _ in }) {
imagePlaceholderView.gradientLayer.slide(to: .right) { (animationGroup) in
animationGroup.beginTime = 0
}
titlePlaceholderView.gradientLayer.slide(to: .right) { (animationGroup) in
animationGroup.beginTime = 1.1
subtitlePlaceholderView.gradientLayer.add(animationGroup, forKey: CAGradientLayer.kSlidingAnimationKey)
}
}
}
我在这里得到了动画:https://gph.is/g/ZPgPlXV
我在制作 Shimmer 动画的方法上是错误的吗?
请帮帮我!提前谢谢!
【问题讨论】:
标签: ios swift cagradientlayer