ShimmerSwift

Facebook shimmer 效果的 Swift 实现。

demo

此项目不再进行积极开发。它很稳定,并且在未来几年内仍然可以使用。我正在将精力转移到 SwiftUI 上。

✅ 要求

👨‍💻 安装

手动

从该存储库下载 .zip 文件,并将 Shimmer 文件夹拖到您的项目中。

Carthage

github "BeauNouvelle/ShimmerSwift" 添加到您的 Cartfile 中。

Cocoapods

pod 'ShimmerSwift' 添加到您的 Podfile 中。

SPM (Swift Package Manager)

在 Xcode 11 中,您可以通过转到 File > Swift Packages > Add Package Dependency 来添加包。复制此存储库的 URL 并继续。

👩‍🍳 使用方法

Shimmer 非常容易上手。

只需创建一个 ShimmeringViewShimmeringLayer 并添加您的内容。

// Setup ShimmeringView
let shimmerView = ShimmeringView(frame: self.view.bounds)
self.view.addSubview(shimmerView)

// Setup the view you want shimmered
let label = UILabel(frame: shimmerView.bounds)
label.text = "This is my shimmering text"

// Add the view you want shimmered to the `shimmerView`
shimmerView.contentView = label

// Start shimmering
shimmerView.isShimmering = true

// To stop shimmering.
shimmerView.isShimmering = false

👩‍🎨 自定义

所有可自定义的属性都在代码中得到了很好的文档说明,并在下面重现。


contentView (内容视图)

要应用 Shimmer 效果的内容视图

contentView: UIView

isShimmering (是否启用 Shimmer 效果)

设置为 true 以启动 Shimmer 动画,设置为 false 以停止。默认为 false

isShimmering: Bool

shimmerSpeed (Shimmer 速度)

Shimmer 动画的速度,单位为每秒点数。数字越大,动画速度越快。

默认为 230

shimmerSpeed: CGFloat

shimmerHighlightLength (Shimmer 高光长度)

Shimmer 的高光长度。范围为 [0,1],默认为 1.0

shimmerHighlightLength: CGFloat

shimmerDirection (Shimmer 方向)

Shimmer 动画的方向。默认为 .right,这将从左到右运行动画。

shimmerDirection: Shimmer.Direction

shimmerPauseDuration (Shimmer 暂停时长)

Shimmer 效果之间的暂停时间(以秒为单位)。默认为 0.4。

shimmerPauseDuration: CFTimeInterval

shimmerAnimationOpacity (Shimmer 动画透明度)

在 Shimmer 期间内容的透明度。默认为 0.5

shimmerAnimationOpacity: CGFloat

shimmerOpacity (Shimmer 透明度)

未应用 Shimmer 效果时内容的透明度。默认为 1.0

shimmerOpacity: CGFloat

shimmerBeginFadeDuration (Shimmer 开始渐变时长)

Shimmer 开始时使用的渐变时长。默认为 0.1

shimmerBeginFadeDuration: CFTimeInterval

shimmerEndFadeDuration (Shimmer 结束渐变时长)

Shimmer 结束时使用的渐变时长。默认为 0.3

shimmerEndFadeDuration: CFTimeInterval