Skip to content

carabina/PIPKit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PIPKit

Swift CocoaPods Carthage compatible

  • Picture in Picture for iOS (iPhone, iPad)

alt tag alt tag

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 pipSize: CGSize { get }
}

PIPKit

class PIPKit {
    var isPIP: Bool
    var hasPIPViewController: Bool
    
    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

alt tag

class PIPViewController: UIViewController, PIPUsable {
    func updatePIPSize() {
        pipSize = CGSize()
        setNeedUpdatePIPSize()
    }
}

FullScreen <-> PIP Mode

class PIPViewController: UIViewController, PIPUsable {
    func fullScreenAndPIPMode() {
        if PIPKit.isPIP {
            stopPIPMode()    
        } else {
            startPIPMode()
        }
    }
}

Authors

Taeun Kim (kofktu), kofktu@gmail.com

License

PIPKit is available under the MIT license. See the LICENSE file for more info.

About

Picture in Picture for iOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 91.4%
  • Ruby 8.6%