FloatingShowable 0.0.1

FloatingShowable 0.0.1

AKIO 维护。



🎈FloatingShowable

这是一个帮助您开发类似画中画视图的支持库。

FloatingShowable ios MIT Carthage compatible Build Status codecov

介绍

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

最简单用法

  1. 请导入FloatingShowable
  2. 目标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()
    }
}
  1. 从符合FloatingShowable规范的对象中调用show函数
  2. 当你想销毁父实例时,别忘了调用dismiss函数
final class ViewController: UIViewController {
    private var floatingScreen = FloatingViewController()

    deinit {
        floatingScreen.dismiss(isScaleChange: true)
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        floatingScreen.show()
    }
}

对于最简单的实现,画中画功能可以通过四个步骤实现。

更改运动范围

  1. 更改stayArea
  2. 当目标对象已经显示时,调用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文件。