🎈 FloatingShowable
这是一个帮助您开发类似画中画视图的支持库。
介绍
FloatingShowable
是一个用于简化实现画中画的 UIKit 库。支持加速度控制,这通常较为复杂。
特点
- 它是受到 iOS14 中引入的画中画启发的。
- 可以实现考虑加速度的运动
- 可以自定义与阴影和运动动画相关的各种参数
- 有了这个库,即使在 iOS13 或更低的设备上,应用中也可以实现画中画功能。
安装
CocoaPods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'FloatingShowable'
end
替换 YOUR_TARGET_NAME,然后在 Podfile 目录中输入以下内容:
$ pod install
Carthage
将其添加到 Cartfile
中。
# Cartfile
github "AkkeyLab/FloatingShowable"
运行此脚本进行安装。
$ carthage update --platform iOS
最简单用法
- 请导入FloatingShowable
- 目标UIViewController必须符合FloatingShowable规范
import FloatingShowable
import UIKit
final class FloatingViewController: UIViewController, FloatingShowable {
var position: FloatingPosition = .bottomRight
var frameSize: CGSize {
CGSize(width: 160, height: 90)
}
var window: UIWindow {
UIApplication.shared.windows.filter { $0.isKeyWindow }.first ?? UIWindow()
}
}
- 从符合FloatingShowable规范的对象中调用show函数
- 当你想销毁父实例时,别忘了调用dismiss函数
final class ViewController: UIViewController {
private var floatingScreen = FloatingViewController()
deinit {
floatingScreen.dismiss(isScaleChange: true)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
floatingScreen.show()
}
}
对于最简单的实现,画中画功能可以通过四个步骤实现。
更改运动范围
- 更改
stayArea
值 - 当目标对象已经显示时,调用updateLayout函数
final class ViewController: UIViewController {
private var floatingScreen = FloatingViewController()
private var isBottomInsetAdd = false {
didSet {
floatingScreen.stayArea.bottom = isBottomInsetAdd ? 100 : 16
floatingScreen.updateLayout()
}
}
}
更改值后,如果目标对象处于非进入区域,它将通过动画移动。
要求
env | version |
---|---|
Swift | 5.x |
Xcode | 12.x |
iOS | 11.0 |
许可
AKProcessIndicator在MIT许可下可用。有关更多信息,请参阅LICENSE文件。