Skip to content

Commit 083eeb9

Browse files
committed
Merge branch 'master' into mafellows/development
2 parents 13beac2 + 6d2d1ef commit 083eeb9

File tree

9 files changed

+324
-4
lines changed

9 files changed

+324
-4
lines changed

Cluster/Base.lproj/LaunchScreen.xib

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
33
<dependencies>
4-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
4+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
55
</dependencies>
66
<objects>
77
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@@ -10,7 +10,7 @@
1010
<rect key="frame" x="0.0" y="0.0" width="480" height="680"/>
1111
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
1212
<subviews>
13-
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Launch" translatesAutoresizingMaskIntoConstraints="NO" id="Njr-K8-E5q">
13+
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Launch1" translatesAutoresizingMaskIntoConstraints="NO" id="Njr-K8-E5q">
1414
<rect key="frame" x="0.0" y="0.0" width="480" height="680"/>
1515
</imageView>
1616
</subviews>
@@ -27,6 +27,6 @@
2727
</view>
2828
</objects>
2929
<resources>
30-
<image name="Launch" width="375" height="667"/>
30+
<image name="Launch1" width="375" height="667"/>
3131
</resources>
3232
</document>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "universal",
5+
"filename" : "Launch1.jpg",
6+
"scale" : "1x"
7+
},
8+
{
9+
"idiom" : "universal",
10+
"filename" : "[email protected]",
11+
"scale" : "2x"
12+
},
13+
{
14+
"idiom" : "universal",
15+
"filename" : "[email protected]",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"version" : 1,
21+
"author" : "xcode"
22+
}
23+
}
68 KB
Loading
160 KB
Loading
283 KB
Loading
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
//
2+
// PopTransitionAnimator.swift
3+
// Interests
4+
//
5+
// Created by lsecrease on 11/7/15.
6+
// Copyright (c) 2015 ImagineME. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
class PopTransitionAnimator: NSObject {
12+
13+
14+
var duration = 1.0
15+
private var isPresenting = false
16+
17+
}
18+
19+
extension PopTransitionAnimator : UIViewControllerTransitioningDelegate {
20+
21+
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
22+
isPresenting = true
23+
return self
24+
}
25+
26+
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
27+
isPresenting = false
28+
return self
29+
}
30+
}
31+
32+
33+
34+
extension PopTransitionAnimator : UIViewControllerAnimatedTransitioning {
35+
36+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
37+
return duration
38+
}
39+
40+
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
41+
let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
42+
let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!
43+
let containerView = transitionContext.containerView()//!
44+
45+
46+
// transforms
47+
let minimize = CGAffineTransformMakeScale(0, 0)
48+
let offScreenDown = CGAffineTransformMakeTranslation(0, containerView!.frame.height)
49+
let shiftDown = CGAffineTransformMakeTranslation(0, 15)
50+
let scaleDown = CGAffineTransformScale(shiftDown, 0.95, 0.95)
51+
52+
toView.transform = minimize
53+
54+
if isPresenting {
55+
containerView!.addSubview(fromView)
56+
containerView!.addSubview(toView)
57+
} else {
58+
containerView!.addSubview(toView)
59+
containerView!.addSubview(fromView)
60+
}
61+
62+
63+
//In Swift 2.0 make options: []
64+
UIView.animateWithDuration(duration, delay: 0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.75, options: [], animations: { () -> Void in
65+
66+
if self.isPresenting {
67+
fromView.transform = scaleDown
68+
fromView.alpha = 0.5
69+
toView.transform = CGAffineTransformIdentity
70+
} else {
71+
fromView.transform = offScreenDown
72+
toView.alpha = 1.0
73+
toView.transform = CGAffineTransformIdentity
74+
}
75+
76+
}) { (finished) -> Void in
77+
transitionContext.completeTransition(true)
78+
}
79+
}
80+
}
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
//
2+
// SlideRightThenPopTransitionAnimator.swift
3+
// Interests
4+
//
5+
// Created by lsecrease on 11/7/15.
6+
// Copyright (c) 2015 ImagineME. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
class SlideRightThenPopTransitionAnimator: NSObject {
12+
13+
14+
var duration = 0.6
15+
private var isPresenting = false
16+
17+
18+
19+
}
20+
21+
22+
extension SlideRightThenPopTransitionAnimator : UIViewControllerTransitioningDelegate
23+
{
24+
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?
25+
{
26+
isPresenting = false // because we are dismissing
27+
return self
28+
}
29+
30+
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning?
31+
{
32+
isPresenting = true
33+
return self
34+
}
35+
}
36+
37+
38+
extension SlideRightThenPopTransitionAnimator : UIViewControllerAnimatedTransitioning
39+
{
40+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
41+
return duration
42+
}
43+
44+
func animateTransition(transitionContext: UIViewControllerContextTransitioning)
45+
{
46+
let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
47+
let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!
48+
let containerView = transitionContext.containerView()//!
49+
50+
let offScreenLeft = CGAffineTransformMakeTranslation(-containerView!.frame.width, 0)
51+
let offScreenRight = CGAffineTransformMakeTranslation(containerView!.frame.width, 0)
52+
let minimize = CGAffineTransformMakeScale(0.5, 0.5)
53+
let minimizeAndOffScreenLeft = CGAffineTransformConcat(minimize, offScreenLeft)
54+
55+
if isPresenting {
56+
toView.transform = minimizeAndOffScreenLeft
57+
}
58+
59+
if isPresenting {
60+
containerView!.addSubview(fromView)
61+
containerView!.addSubview(toView)
62+
} else {
63+
containerView!.addSubview(toView)
64+
containerView!.addSubview(fromView)
65+
}
66+
67+
UIView.animateWithDuration( duration, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.4, options: [], animations: { () -> Void in
68+
69+
let backToMainScreen = CGAffineTransformMakeTranslation(0, 0)
70+
if self.isPresenting {
71+
toView.transform = CGAffineTransformConcat(minimize, backToMainScreen)
72+
fromView.transform = offScreenRight
73+
} else {
74+
fromView.transform = CGAffineTransformConcat(minimize, offScreenRight)
75+
}
76+
77+
}, completion: nil)
78+
79+
UIView.animateWithDuration(duration/2.0, delay: duration, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.4, options: [], animations: { () -> Void in
80+
81+
if self.isPresenting {
82+
toView.transform = CGAffineTransformIdentity
83+
} else {
84+
fromView.transform = minimizeAndOffScreenLeft
85+
toView.transform = CGAffineTransformIdentity
86+
}
87+
88+
}) { (finished) -> Void in
89+
if finished {
90+
transitionContext.completeTransition(true)
91+
}
92+
}
93+
}
94+
}
95+
96+
97+
98+
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+
111+
112+
113+
114+
115+
116+
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
//
2+
// SlideRightTransitionAnimator.swift
3+
// Interests
4+
//
5+
// Created by lsecrease on 11/7/15.
6+
// Copyright (c) 2015 ImagineME. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
class SlideRightTransitionAnimator: NSObject {
12+
13+
14+
15+
var duration = 1.0
16+
private var isPresenting = false
17+
18+
}
19+
20+
21+
extension SlideRightTransitionAnimator : UIViewControllerTransitioningDelegate {
22+
23+
24+
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
25+
26+
isPresenting = true
27+
return self
28+
}
29+
30+
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
31+
32+
isPresenting = false
33+
return self
34+
35+
36+
}
37+
38+
39+
40+
}
41+
42+
43+
extension SlideRightTransitionAnimator : UIViewControllerAnimatedTransitioning {
44+
45+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
46+
return duration
47+
}
48+
49+
50+
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
51+
let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
52+
let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!
53+
let containerView = transitionContext.containerView()//!
54+
55+
let offScreenLeft = CGAffineTransformMakeTranslation(-containerView!.frame.width, 0)
56+
let minimize = CGAffineTransformMakeScale(0, 0)
57+
let shiftDown = CGAffineTransformMakeTranslation(0, 15)
58+
let scaleDown = CGAffineTransformScale(shiftDown, 0.8, 0.8)
59+
60+
if isPresenting {
61+
let minimizeAndOffScreenLeft = CGAffineTransformConcat(minimize, offScreenLeft)
62+
toView.transform = minimizeAndOffScreenLeft
63+
}
64+
65+
66+
if isPresenting {
67+
containerView!.addSubview(fromView)
68+
containerView!.addSubview(toView)
69+
} else {
70+
containerView!.addSubview(toView)
71+
containerView!.addSubview(fromView)
72+
}
73+
74+
75+
//animate
76+
//In Swift 2.0 make options: []
77+
78+
UIView.animateWithDuration(duration, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.4, options: [], animations: { () -> Void in
79+
80+
if self.isPresenting {
81+
82+
fromView.transform = scaleDown
83+
fromView.alpha = 0.5
84+
toView.transform = CGAffineTransformIdentity
85+
86+
} else {
87+
88+
fromView.transform = offScreenLeft
89+
toView.alpha = 1.0
90+
toView.transform = CGAffineTransformIdentity
91+
92+
}
93+
94+
}) { (finished) -> Void in
95+
96+
if finished {
97+
transitionContext.completeTransition(true)
98+
}
99+
}
100+
}
101+
}

Pods/.DS_Store

6 KB
Binary file not shown.

0 commit comments

Comments
 (0)