All Projects → oyvinddd → Ohcirclesegue

oyvinddd / Ohcirclesegue

Licence: mit
Custom UIStoryBoardSegue with circular animation

Programming Languages

swift
15916 projects

OHCircleSegue

Custom UIStoryBoardSegue with circular transition/animation

Demo

Installation

Manual

Drag the OHCircleSegue.swift class into you project and you're done.

Usage

    1. In your storyboard, create a segue between two view controllers
    1. Go to the attributes inspector for the newly created segue and set it up like shown below (note that 'Kind' can be set to anything)

Usage 1

    1. Repeat step 1 and 2 for the unwind segue

In this example, the performSegueWithIdentifier method is called from touchesBegan. To determine where on the screen animation should originate from, override the prepareForSegue function:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
    // sender object is an instance of UITouch in this case 
    let touch = sender as! UITouch
        
    // Access the circleOrigin property and assign preferred CGPoint
    (segue as! OHCircleSegue).circleOrigin = touch.locationInView(view)
}

UIButton example

Starting the transition from a UIButton (note that this will aslo work for other UIKit components as long as user interactions are enabled).

  1. Add a button the view controller you want to transition from and hook it up with an IBAction like shown below
@IBAction func buttonTapped(sender: AnyObject) {
    
    // Call method to perform our OHCircleSegue, using our button as the sender
    performSegueWithIdentifier("Segue", sender: sender)
}
  1. In the prepareForSegue method, unwrap the button and use it to determine the origin of our transition
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
    // No problem to force unwrap in this case, since we know sender is an instance of UIButton
    let button = sender as! UIButton
        
    // Set the circleOrigin property of the segue to the center of the button
    (segue as! OHCircleSegue).circleOrigin = button.center
}

License

OHCircleSegue is available under the MIT license. See the LICENSE.md 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].