Skip to content

Instantly share code, notes, and snippets.

View gyubokbaik's full-sized avatar

qbo (Gyubok Baik) gyubokbaik

View GitHub Profile
@gyubokbaik
gyubokbaik / Swipe Content with Subtle Transition
Created May 4, 2017 00:46
Blog - Swipe Content with Subtle Transition
import UIKit
class SwipeViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UIScrollViewDelegate {
@IBOutlet var imageViewBackground: UIImageView!
@IBOutlet var collectionView: UICollectionView!
let arraySampleContent:[[String: String]] = [
["text": "content 1", "image_name": "img_background_1"],
["text": "content 2", "image_name": "img_background_2"],
@gyubokbaik
gyubokbaik / Hamburger Menu on iOS Done Right
Created April 19, 2017 22:53
Blog - Hamburger Menu on iOS Done Right
import UIKit
class MenuViewController: UIViewController {
@IBOutlet var gestureScreenEdgePan: UIScreenEdgePanGestureRecognizer!
@IBOutlet var viewBlack: UIView!
let maxBlackViewAlpha:CGFloat = 0.5
@IBOutlet var viewMenu: UIView!
@gyubokbaik
gyubokbaik / gestureTap Selector
Created April 19, 2017 22:51
Blog - Hamburger Menu on iOS Done Right - gestureTap Selector
@IBAction func gestureTap(_ sender: UITapGestureRecognizer) {
self.hideMenu()
}
@gyubokbaik
gyubokbaik / gesturePan Selector
Created April 19, 2017 22:45
Blog - Hamburger Menu on iOS Done Right - gesturePan Selector
@IBAction func gesturePan(_ sender: UIPanGestureRecognizer) {
// retrieve the current state of the gesture
if sender.state == UIGestureRecognizerState.began {
// no need to do anything
} else if sender.state == UIGestureRecognizerState.changed {
// retrieve the amount viewMenu has been dragged
let translationX = sender.translation(in: sender.view).x
@gyubokbaik
gyubokbaik / Open and Close Menu Convenience Functions
Created April 19, 2017 22:36
Blog - Hamburger Menu on iOS Done Right - Open and Close Menu Convenience Functions
func openMenu() {
// when menu is opened, it's left constraint should be 0
constraintMenuLeft.constant = 0
// view for dimming effect should also be shown
viewBlack.isHidden = false
// animate opening of the menu - including opacity value
UIView.animate(withDuration: 0.3, animations: {
@gyubokbaik
gyubokbaik / gestureScreenEdgePan Selector
Created April 19, 2017 22:29
Blog - Hamburger Menu on iOS Done Right - gestureScreenEdgePan Selector
@IBAction func gestureScreenEdgePan(_ sender: UIScreenEdgePanGestureRecognizer) {
// retrieve the current state of the gesture
if sender.state == UIGestureRecognizerState.began {
// if the user has just started dragging, make sure view for dimming effect is hidden well
viewBlack.isHidden = false
viewBlack.alpha = 0
} else if (sender.state == UIGestureRecognizerState.changed) {
import UIKit
class HeroBannerViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var constraintHeroBannerHeight: NSLayoutConstraint!
var defaultBannerHeight:CGFloat = 0
var minimumBannerHeight:CGFloat = 0
override func viewDidLoad() {
super.viewDidLoad()
@gyubokbaik
gyubokbaik / panGestureRecognizerHandler.txt
Created March 29, 2017 00:02
Blog - Dismiss ViewControllers Presented Modally Using Swipe Down
// define a variable to store initial touch position
var initialTouchPoint: CGPoint = CGPoint(x: 0,y: 0)
@IBAction func panGestureRecognizerHandler(_ sender: UIPanGestureRecognizer) {
let touchPoint = sender.location(in: self.view?.window)
if sender.state == UIGestureRecognizerState.began {
initialTouchPoint = touchPoint
} else if sender.state == UIGestureRecognizerState.changed {
if touchPoint.y - initialTouchPoint.y > 0 {