Commit 6df970aa by Daniel Dahan

reworked TransitionPreprocessor

parent 5c4a028f
...@@ -35,37 +35,28 @@ public enum CascadeDirection { ...@@ -35,37 +35,28 @@ public enum CascadeDirection {
case rightToLeft case rightToLeft
case radial(center:CGPoint) case radial(center:CGPoint)
case inverseRadial(center:CGPoint) case inverseRadial(center:CGPoint)
var comparator: (UIView, UIView) -> Bool { var comparator: (UIView, UIView) -> Bool {
switch self { switch self {
case .topToBottom: case .topToBottom:
return { return $0.frame.minY < $1.frame.minY } return { return $0.frame.minY < $1.frame.minY }
case .bottomToTop: case .bottomToTop:
return { return $0.frame.maxY == $1.frame.maxY ? $0.frame.maxX > $1.frame.maxX : $0.frame.maxY > $1.frame.maxY } return { return $0.frame.maxY == $1.frame.maxY ? $0.frame.maxX > $1.frame.maxX : $0.frame.maxY > $1.frame.maxY }
case .leftToRight: case .leftToRight:
return { return $0.frame.minX < $1.frame.minX } return { return $0.frame.minX < $1.frame.minX }
case .rightToLeft: case .rightToLeft:
return { return $0.frame.maxX > $1.frame.maxX } return { return $0.frame.maxX > $1.frame.maxX }
case .radial(let center): case .radial(let center):
return { return $0.center.distance(center) < $1.center.distance(center) } return { return $0.center.distance(center) < $1.center.distance(center) }
case .inverseRadial(let center): case .inverseRadial(let center):
return { return $0.center.distance(center) > $1.center.distance(center) } return { return $0.center.distance(center) > $1.center.distance(center) }
} }
} }
init?(_ string: String) {
switch string {
case "bottomToTop":
self = .bottomToTop
case "leftToRight":
self = .leftToRight
case "rightToLeft":
self = .rightToLeft
case "topToBottom":
self = .topToBottom
default:
return nil
}
}
} }
class CascadePreprocessor: MotionPreprocessor { class CascadePreprocessor: MotionPreprocessor {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment