PIPKit
- Picture in Picture for iOS (iPhone, iPad)
Requirements
- iOS 8.0+
- Swift 4.2
- XCode 10
Installation
CocoaPods
PIPKit is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'PIPKit'
Carthage
For iOS 8+ projects with Carthage
github "Kofktu/PIPKit"
Usage
PIPUsable
public protocol PIPUsable {
var initialState: PIPState { get }
var initialPosition: PIPPosition { get }
var pipSize: CGSize { get }
func didChangedState(_ state: PIPState)
}
PIPKit
class PIPKit {
var isPIP: Bool
var isActive: Bool
var visibleViewController: PIPKitViewController?
class func show(with viewController: PIPKitViewController, completion: (() -> Void)? = nil)
class func dismiss(animated: Bool, completion: (() -> Void)? = nil)
}
PIPKitViewController (UIViewController & PIPUsable)
func setNeedUpdatePIPSize()
func startPIPMode()
func stopPIPMode()
At a Glance
Show & Dismiss
class PIPViewController: UIViewController, PIPUsable {}
let viewController = PIPViewController()
PIPKit.show(with: viewController)
PIPKit.dismiss(animated: true)
Update PIPSize
class PIPViewController: UIViewController, PIPUsable {
func updatePIPSize() {
pipSize = CGSize()
setNeedUpdatePIPSize()
}
}
FullScreen <-> PIP Mode
class PIPViewController: UIViewController, PIPUsable {
func fullScreenAndPIPMode() {
if PIPKit.isPIP {
stopPIPMode()
} else {
startPIPMode()
}
}
func didChangedState(_ state: PIPState) {}
}
Authors
Taeun Kim (kofktu), kofktu@gmail.com
License
PIPKit is available under the MIT
license. See the LICENSE
file for more info.