APKenBurnsView 是一个支持面部识别,能够美观地动画化人物照片的 UIView 子类。
APKenBurnsView 支持三种面部识别模式:
None
- 不进行面部识别,简单的 Ken Burns 效果。Biggest
- 识别图像中最大的面部,如果有的话,过渡将在面部矩形中心开始或结束(随机选择)。Group
- 识别图像中所有面部,如果有的话,过渡将在所有面部复合矩形中心开始或结束(随机选择)。简单的接口。提供 UIImage 的数据源类,设置所有时间并运行 startAnimations
。不涉及深奥的技术!
数据源应在 APKenBurnsView 调用 func nextImageForKenBurnsView(kenBurnsView: APKenBurnsView) -> UIImage?
的时刻准备好提供下一张图像。如果没有准备好的 UIImage(例如,仍在从网络上加载等),则数据源应返回 nil
,并且 APKenBurnsView 将再次动画化最后一张图像。如果您从网络上加载图像,您应该考虑某种预加载机制。
用法示例
class MyViewController: UIViewController {
// MARK: - Outlets
@IBOutlet weak var kenBurnsView: APKenBurnsView!
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
kenBurnsView.dataSource = self
kenBurnsView.faceRecognitionMode = .Biggest
kenBurnsView.scaleFactorDeviation = 0.5
kenBurnsView.imageAnimationDuration = 5.0
kenBurnsView.imageAnimationDurationDeviation = 1.0
kenBurnsView.transitionAnimationDuration = 2.0
kenBurnsView.transitionAnimationDurationDeviation = 1.0
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.kenBurnsView.startAnimations()
}
}
extension KenBurnsViewController: APKenBurnsViewDataSource {
func nextImageForKenBurnsView(kenBurnsView: APKenBurnsView) -> UIImage? {
return /* Provide UIImage instance */
}
}
要运行示例项目,首先克隆仓库,然后从示例目录运行 pod install。
APKenBurnsView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:
pod 'APKenBurnsView'
Nickolay Sheika, [email protected]
如果您有改进或关注点,请随时发布 一个问题 并描述详细信息。
查看所有 Alterplay 的 GitHub 项目。 用其他想法和项目 给我们发邮件。
APKenBurnsView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。