All Projects → Kofktu → Pipkit

Kofktu / Pipkit

Licence: mit
Picture in Picture for iOS

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Pipkit

Swifty360player
iOS 360-degree video player streaming from an AVPlayer.
Stars: ✭ 118 (-15.71%)
Mutual labels:  cocoapods, carthage
Closures
Swifty closures for UIKit and Foundation
Stars: ✭ 1,720 (+1128.57%)
Mutual labels:  cocoapods, carthage
Sqift
Powerful Swift wrapper for SQLite
Stars: ✭ 119 (-15%)
Mutual labels:  cocoapods, carthage
Switch
💊 An iOS switch control implemented in Swift with full Interface Builder support
Stars: ✭ 132 (-5.71%)
Mutual labels:  cocoapods, carthage
Croc
Swift emoji string parsing library
Stars: ✭ 124 (-11.43%)
Mutual labels:  cocoapods, carthage
Microfeatures Example
📦📱 Example of iOS app built using the uFeatures architecture
Stars: ✭ 112 (-20%)
Mutual labels:  cocoapods, carthage
Coregpx
A library for parsing and creation of GPX location files. Purely Swift.
Stars: ✭ 132 (-5.71%)
Mutual labels:  cocoapods, carthage
Szmentionsswift
Library to help handle mentions
Stars: ✭ 109 (-22.14%)
Mutual labels:  cocoapods, carthage
Poliopager
A flexible TabBarController with search tab like SNKRS.
Stars: ✭ 133 (-5%)
Mutual labels:  cocoapods, carthage
Adpuzzleanimation
Inspired by Fabric - Answers animation. Allows to "build" given view with pieces. Allows to "destroy" given view into pieces
Stars: ✭ 123 (-12.14%)
Mutual labels:  cocoapods, carthage
Shari
Shari is the alternative to the library of UIPickerView(drum roll) in Swift. You can select a item using UITableView.
Stars: ✭ 111 (-20.71%)
Mutual labels:  cocoapods, carthage
Ducttape
📦 KeyPath dynamicMemberLookup based syntax sugar for Swift.
Stars: ✭ 138 (-1.43%)
Mutual labels:  cocoapods, carthage
Device
Light weight tool for detecting the current device and screen size written in swift.
Stars: ✭ 1,503 (+973.57%)
Mutual labels:  cocoapods, carthage
Fontawesome.swift
Use FontAwesome in your Swift projects
Stars: ✭ 1,513 (+980.71%)
Mutual labels:  cocoapods, carthage
Randomkit
Random data generation in Swift
Stars: ✭ 1,458 (+941.43%)
Mutual labels:  cocoapods, carthage
Actionclosurable
Extensions which helps to convert objc-style target/action to swifty closures
Stars: ✭ 120 (-14.29%)
Mutual labels:  cocoapods, carthage
Alamofire
Elegant HTTP Networking in Swift
Stars: ✭ 36,896 (+26254.29%)
Mutual labels:  cocoapods, carthage
Pincodeinputview
A input text view for entering pin code.
Stars: ✭ 108 (-22.86%)
Mutual labels:  cocoapods, carthage
Bettersegmentedcontrol
An easy to use, customizable replacement for UISegmentedControl & UISwitch.
Stars: ✭ 1,782 (+1172.86%)
Mutual labels:  cocoapods, carthage
Natrium
A pre-build (Swift) script to alter your Xcode project at pre-build-time per environment, build configuration and target.
Stars: ✭ 131 (-6.43%)
Mutual labels:  cocoapods, carthage

PIPKit

Swift CocoaPods Carthage compatible

  • Picture in Picture for iOS (iPhone, iPad)

pip_default pip_transition

Requirements

  • iOS 8.0+
  • Swift 5.0
  • Xcode 11

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 pipEdgeInsets: UIEdgeInsets { get }
    var pipSize: CGSize { get }
    var pipShadow: PIPShadow? { get }
    var pipCorner: PIPCorner? { get }
    func didChangedState(_ state: PIPState)
    func didChangePosition(_ position: PIPPosition)
}

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

pip_resize

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), [email protected]

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].