All Projects → Awalz → Panel

Awalz / Panel

Licence: BSD-2-Clause license
A Snapchat inspired ScrollView Controller Written in Swift

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Panel

Shellphish
Phishing Tool for 18 social media: Instagram, Facebook, Snapchat, Github, Twitter, Yahoo, Protonmail, Spotify, Netflix, Linkedin, Wordpress, Origin, Steam, Microsoft, InstaFollowers, Gitlab, Pinterest
Stars: ✭ 1,037 (+4613.64%)
Mutual labels:  snapchat
Facelandmarksdetection
Finds facial features such as face contour, eyes, mouth and nose in an image.
Stars: ✭ 130 (+490.91%)
Mutual labels:  snapchat
Nextlevel
NextLevel was initally a weekend project that has now grown into a open community of camera platform enthusists. The software provides foundational components for managing media recording, camera interface customization, gestural interaction customization, and image streaming on iOS. The same capabilities can also be found in apps such as Snapchat, Instagram, and Vine.
Stars: ✭ 1,940 (+8718.18%)
Mutual labels:  snapchat
Opencv Face Filters
Snapchat-like Face Filters in OpenCV
Stars: ✭ 51 (+131.82%)
Mutual labels:  snapchat
Simple Snapchat
A Snapchat clone developed in Swift 3 and Firebase
Stars: ✭ 113 (+413.64%)
Mutual labels:  snapchat
Hybridcamera
Video and photo camera for iOS
Stars: ✭ 145 (+559.09%)
Mutual labels:  snapchat
Snapcode
👻 A simple command-line tool to download SnapChat codes.
Stars: ✭ 18 (-18.18%)
Mutual labels:  snapchat
Swiftsnapper
Open source Snapchat client for Windows 10
Stars: ✭ 225 (+922.73%)
Mutual labels:  snapchat
Mdm
A TensorFlow implementation of the Mnemonic Descent Method.
Stars: ✭ 120 (+445.45%)
Mutual labels:  snapchat
Swiftycam
A Snapchat Inspired iOS Camera Framework written in Swift
Stars: ✭ 1,879 (+8440.91%)
Mutual labels:  snapchat
Monocle
🕶 Snapchat Spectacles video player
Stars: ✭ 61 (+177.27%)
Mutual labels:  snapchat
Diimageview
A Snapchat-inspired caption integrated within a regular UIImageView.
Stars: ✭ 104 (+372.73%)
Mutual labels:  snapchat
Jeelizfacefilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: ✭ 2,042 (+9181.82%)
Mutual labels:  snapchat
Edxposed Snapchat Bypass
Elder driver Xposed Framework. W / Snapchat Bypass
Stars: ✭ 49 (+122.73%)
Mutual labels:  snapchat
Socialblocklists
Blocklists to block the communication to social networking sites and privacy harming services
Stars: ✭ 161 (+631.82%)
Mutual labels:  snapchat
Snapchat Filter
3 facial filters on a webcam feed using OpenCV & ML - face swap, glasses and moustache
Stars: ✭ 35 (+59.09%)
Mutual labels:  snapchat
React Native Story
React native instagram story
Stars: ✭ 144 (+554.55%)
Mutual labels:  snapchat
Snapchat
NodeJS client for the unofficial Snapchat API
Stars: ✭ 224 (+918.18%)
Mutual labels:  snapchat
Pbjvision
📸 iOS Media Capture – features touch-to-record video, slow motion, and photography
Stars: ✭ 1,940 (+8718.18%)
Mutual labels:  snapchat
Snapchatcheckbox
A Snapchat-inspired checkbox.
Stars: ✭ 147 (+568.18%)
Mutual labels:  snapchat

Panel

Platform: iOS 8+ Language: Swift 3 CocoaPods compatible License: BSD

Overview

Panel is a a simple, Snapchat inspired ViewController subclass. Panel allows you to add you own custom ViewControllers to an embedded ScrollView. Panel allows complete control over the presentaion of the panels.

Requirements

  • iOS 8.0+
  • Swift 3.0+

License

Panel is available under the BSD license. See the LICENSE file for more info.

Installation

Cocoapods:

Panel is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "Panel"

Manual Installation:

Simply copy the contents of the Source folder into your project.

Usage

Using Panel is very simple.

Getting Started:

If you have installed via Cocoapods, be sure to include

import Panel

Create a View Controller, and set its subclass to be PanelViewController:

class MyViewController: PanelViewController {
    ...
    
}

Adding View Controllers:

To add your own ViewControllers, your container ViewController must conform to the PanelViewControllerDataSource protocol:

class MyViewController: PanelViewController, PanelViewControllerDataSource {   
    ...
    
}

The container ViewController must also set itself as the dataSource delegate in ViewDidLoad:

override func viewDidLoad() {
    super.viewDidLoad()
        
    // Datasource to set our ViewControllers
    dataSource = self
}

PanelViewControllerDataSource has one required protocol functions which must be implemented: PanelViewDidSetViewControllers(). PanelViewDidSetViewControllers() expects a return type of [UIViewController]. Panel requires three ViewControllers be returned in this array, in the order you wish to have them displayed:

func PanelViewDidSetViewControllers() -> [UIViewController] {
    
  // Add your own custom View Controllers here 
     
  	viewController1 = UIViewController()
    viewController2 = UIViewController()
    viewController3 = UIViewController()
        
    let panelArray = [viewController1, viewController2, viewController3]
        
    // Will be displayed in order: [LeftPanel, CenterPanel, RightPanel]
        
    return panelArray
}

Manually Moving to Panel

If you wish to animate to particular panel from inside your container ViewController, you can use the animateTo(panel:) function:

moveTo(panel: .left)

Additionally, if you wish to have one of the panel ViewControllers animate to another panel, you can use the PanelViewControllerDelegate property.

Within the panel ViewController's decleration, add a delegate property of optional type PanelViewControllerDelegate:

var delegate: PanelViewControllerDelegate?

When declaring the container ViewControllers dataSource, set the panel's delegate to the container ViewController:

func PanelViewDidSetViewControllers() -> [UIViewController] {
     
   viewController1 = CustomViewController()
     
   // set the ViewController's delegate to the 
   // container ViewController
   
   viewContoller1.delegate = self
        
    ...
}

Once the delegate is set, you can animate the panels by calling the delegate function PanelViewControllerAnimateTo(panel:):

delegate?.PanelViewControllerAnimateTo(panel: .left)

Miscellaneous

If you wish to know the position of the container ScrollView as it scrolls, you can implement the optional PanelViewControllerDataSource function PanelViewControllerDidScroll(offSet:). This will return the offSet CGFloat between -1.0 and 1.0:

func PanelViewControllerDidScroll(offSet: CGFloat) {
     // Offset is a float between -1.0 to 1.0 
     // depending on the position of ScrollView. 
     // -1.0 is centered on left panel
     // 0.0 is centered on central panel
     // 1.0 is centered on right panel
}

Contact

If you have any questions, requests, or enhancements, feel free to submit a pull request, create an issue, or contact me in person:

Andrew Walz - [email protected]

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].