Created
January 27, 2015 00:23
-
-
Save chris9753/4e02f73405f1ebafb971 to your computer and use it in GitHub Desktop.
Tinder Swipe Effect For IOS8 (SWIFT)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Global Variables | |
var alphaX : CGFloat = 0 | |
var orgState : CGPoint = CGPoint() | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
//Adding the Label | |
var label: UILabel = UILabel(frame: CGRectMake(self.view.bounds.width/2 - 100 , self.view.bounds.height/2 - 50, 200, 100)) | |
orgState = label.center | |
label.text = "Drag Me!" | |
label.textAlignment = NSTextAlignment.Center | |
self.view.addSubview(label) | |
//Attaching Gesture Recognition to Label | |
var gesture = UIPanGestureRecognizer(target: self, action: Selector("wasDragged:")) | |
label.addGestureRecognizer(gesture) | |
label.userInteractionEnabled = true | |
} | |
func wasDragged(gesture : UIPanGestureRecognizer){ | |
//Vector Translations | |
let translation = gesture.translationInView(self.view) | |
alphaX += (translation.x * 3.14/180) | |
var label = gesture.view! | |
label.center = CGPoint(x: label.center.x + translation.x, y: label.center.y + translation.y) | |
gesture.setTranslation(CGPointZero, inView: self.view) | |
//Transformations | |
var transformVar = min(abs(2/* size/speed factor decimal *//alphaX ),1) | |
var rotation:CGAffineTransform = CGAffineTransformMakeRotation(alphaX/9) | |
var scale: CGAffineTransform = CGAffineTransformScale(rotation, transformVar,transformVar) | |
label.transform = scale | |
gesture.view!.alpha = 1-(min(abs(alphaX/10),1)) | |
//StateCheck | |
if gesture.state==UIGestureRecognizerState.Ended { | |
if label.center.x < 100 { | |
println("Not Chosen") | |
//refresh view/change image | |
} else if label.center.x > self.view.bounds.width - 90 { | |
println("Chosen") | |
//refresh view/change image | |
} else { | |
UIView.animateWithDuration(0.3, animations: { () -> Void in | |
label.center = self.orgState | |
label.transform = CGAffineTransformIdentity | |
}) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment