Skip to content

Commit cfb9d19

Browse files
committed
Support xcode 16
1 parent 5ff2580 commit cfb9d19

File tree

9 files changed

+60
-65
lines changed

9 files changed

+60
-65
lines changed

Examples/Hero2Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

-9
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,6 @@
1818
"revision": "44450a8f564d7c0165f736ba2250649ff8d3e556",
1919
"version": "6.3.0"
2020
}
21-
},
22-
{
23-
"package": "ScreenCorners",
24-
"repositoryURL": "https://github.com/kylebshr/ScreenCorners",
25-
"state": {
26-
"branch": null,
27-
"revision": "1b71897c8d9091cad34bf10a47e3810c0c10e1e8",
28-
"version": "1.0.1"
29-
}
3021
}
3122
]
3223
},

Examples/Hero2Example/Supporting Files/ComponentViewController.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import UIKit
1212

1313
class ComponentViewController: UIViewController {
1414
let componentView = ComponentScrollView()
15-
var transition: Transition = HeroTransition() {
15+
var transition: BaseTransition = HeroTransition() {
1616
didSet {
1717
transitioningDelegate = transition
1818
}
@@ -55,7 +55,7 @@ class ComponentViewController: UIViewController {
5555
}
5656

5757
extension ComponentViewController: TransitionProvider {
58-
func transitionFor(presenting: Bool, otherViewController: UIViewController) -> Transition? {
58+
func transitionFor(presenting: Bool, otherViewController: UIViewController) -> BaseTransition? {
5959
transition
6060
}
6161
}

Sources/Hero2/Base/Transition.swift Sources/Hero2/Base/BaseTransition.swift

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Transition.swift
1+
// BaseTransition.swift
22
// Copyright © 2020 Noto. All rights reserved.
33

44
import UIKit
@@ -7,7 +7,7 @@ extension Notification.Name {
77
public static let transitionDidUpdateIsAnimating = Notification.Name("transitionDidUpdateIsAnimating")
88
}
99

10-
open class Transition: NSObject {
10+
open class BaseTransition: NSObject {
1111
public static var animatingTransitionCount: Int = 0
1212
public private(set) var isPresenting: Bool = true
1313
public private(set) var isInteractive = false
@@ -132,7 +132,7 @@ open class Transition: NSObject {
132132
}
133133

134134
// MARK: - Helper Getters
135-
extension Transition {
135+
extension BaseTransition {
136136
public var transitionContainer: UIView? {
137137
transitionContext?.containerView
138138
}
@@ -186,7 +186,7 @@ extension Transition {
186186
}
187187
}
188188

189-
extension Transition: UIViewControllerInteractiveTransitioning {
189+
extension BaseTransition: UIViewControllerInteractiveTransitioning {
190190
open func interruptibleAnimator(using _: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating {
191191
animator
192192
}
@@ -200,7 +200,7 @@ extension Transition: UIViewControllerInteractiveTransitioning {
200200
}
201201
}
202202

203-
extension Transition: UIViewControllerAnimatedTransitioning {
203+
extension BaseTransition: UIViewControllerAnimatedTransitioning {
204204
open func animateTransition(using context: UIViewControllerContextTransitioning) {
205205
transitionContext = context
206206
pausedAnimations.removeAll()
@@ -343,7 +343,7 @@ extension Transition: UIViewControllerAnimatedTransitioning {
343343
}
344344
}
345345

346-
extension Transition: UIViewControllerTransitioningDelegate {
346+
extension BaseTransition: UIViewControllerTransitioningDelegate {
347347
@discardableResult internal func setupTransition(isPresenting: Bool, navigationController: UINavigationController? = nil) -> Self {
348348
self.isPresenting = isPresenting
349349
self.isTransitioning = true
@@ -372,7 +372,7 @@ extension Transition: UIViewControllerTransitioningDelegate {
372372
}
373373
}
374374

375-
extension Transition: UINavigationControllerDelegate {
375+
extension BaseTransition: UINavigationControllerDelegate {
376376
public func navigationController(_: UINavigationController, interactionControllerFor _: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
377377
interactiveTransitioning
378378
}

Sources/Hero2/Base/TransitionCoordinator.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import UIKit
22

33
public protocol TransitionProvider: UIViewController {
4-
func transitionFor(presenting: Bool, otherViewController: UIViewController) -> Transition?
4+
func transitionFor(presenting: Bool, otherViewController: UIViewController) -> BaseTransition?
55
}
66

77
public class TransitionCoordinator: NSObject {
88
public static let shared = TransitionCoordinator()
99

10-
public var defaultTransition: Transition = HeroTransition()
11-
public private(set) var currentTransition: Transition?
10+
public var defaultTransition: BaseTransition = HeroTransition()
11+
public private(set) var currentTransition: BaseTransition?
1212
public var isTransitioning: Bool {
1313
currentTransition?.isTransitioning == true
1414
}

Sources/Hero2/BuiltinTransitions/FadeTransition.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import Foundation
99

10-
public class FadeTransition: Transition {
10+
public class FadeTransition: BaseTransition {
1111
public override func animate() {
1212
guard let front = foregroundView else {
1313
fatalError()

Sources/Hero2/BuiltinTransitions/MatchTransition.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public struct MatchTransitionOptions {
3737
/// The foreground view will be masked to the item and expand as the transition
3838
/// progress. This transition is interruptible if `isUserInteractionEnabled` is set to true.
3939
///
40-
open class MatchTransition: Transition {
40+
open class MatchTransition: BaseTransition {
4141
/// Global transition options
4242
public static var defaultOptions = MatchTransitionOptions()
4343

Sources/Hero2/BuiltinTransitions/SheetTransition.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ private extension UIViewController {
338338
}
339339
}
340340

341-
extension Transition {
341+
extension BaseTransition {
342342
private static let cornerRadiusKey: String = {
343343
let components = ["Radius", "Corner", "display", "_"]
344344
return components.reversed().joined()

Sources/Hero2/HeroTransition/HeroTransition.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import BaseToolbox
22
import UIKit
33

4-
open class HeroTransition: Transition {
4+
open class HeroTransition: BaseTransition {
55
// MARK: - public
66

77
public func apply(position: CGPoint, to view: UIView) {

Sources/Hero2/HeroTransition/Internal/Helpers.swift

+44-40
Original file line numberDiff line numberDiff line change
@@ -53,47 +53,51 @@ func viewStateFrom(modifiers: [HeroModifier], metadata: inout ModifierProcessMet
5353

5454
func process(modifiers: [HeroModifier], on state: inout ViewState, metadata: inout ModifierProcessMetadata) {
5555
for modifier in modifiers {
56-
switch modifier {
57-
case .fade:
58-
state.alpha = 0
59-
case .transform(let transform):
60-
state.transform = (state.transform ?? .identity).concatenating(transform)
61-
case .shadowOpacity(let shadowOpacity):
62-
state.shadowOpacity = shadowOpacity
63-
case .zPosition(let zPosition):
64-
state.zPosition = zPosition
65-
case .overlayColor(let color):
66-
state.overlayColor = color
67-
case .backgroundColor(let color):
68-
state.backgroundColor = color
69-
case .delay(let delay):
70-
state.delay = delay
71-
case .duration(let duration):
72-
state.duration = duration
73-
case .containerType(let containerType):
74-
state.containerType = containerType
75-
case .snapshotType(let snapshotType):
76-
state.snapshotType = snapshotType
77-
case .scaleSize:
78-
state.scaleSize = true
79-
case .matchWidthOnly:
80-
state.matchWidthOnly = true
81-
case .skipContainer:
82-
state.skipContainer = true
83-
case .forceTransition:
84-
state.forceTransition = true
85-
case .match(let matchId):
86-
if metadata.otherViews[matchId] != nil {
87-
state.match = matchId
88-
metadata.isMatched = true
89-
}
90-
case ._beginWith(let modifiers):
91-
var beginState = ViewState()
92-
process(modifiers: modifiers, on: &beginState, metadata: &metadata)
93-
state.beginState = (state.beginState ?? ViewState())?.merge(state: beginState)
94-
case ._process(let processor):
95-
process(modifiers: processor(metadata), on: &state, metadata: &metadata)
56+
process(modifier: modifier, on: &state, metadata: &metadata)
57+
}
58+
}
59+
60+
func process(modifier: HeroModifier, on state: inout ViewState, metadata: inout ModifierProcessMetadata) {
61+
switch modifier {
62+
case .fade:
63+
state.alpha = 0
64+
case .transform(let transform):
65+
state.transform = (state.transform ?? .identity).concatenating(transform)
66+
case .shadowOpacity(let shadowOpacity):
67+
state.shadowOpacity = shadowOpacity
68+
case .zPosition(let zPosition):
69+
state.zPosition = zPosition
70+
case .overlayColor(let color):
71+
state.overlayColor = color
72+
case .backgroundColor(let color):
73+
state.backgroundColor = color
74+
case .delay(let delay):
75+
state.delay = delay
76+
case .duration(let duration):
77+
state.duration = duration
78+
case .containerType(let containerType):
79+
state.containerType = containerType
80+
case .snapshotType(let snapshotType):
81+
state.snapshotType = snapshotType
82+
case .scaleSize:
83+
state.scaleSize = true
84+
case .matchWidthOnly:
85+
state.matchWidthOnly = true
86+
case .skipContainer:
87+
state.skipContainer = true
88+
case .forceTransition:
89+
state.forceTransition = true
90+
case .match(let matchId):
91+
if metadata.otherViews[matchId] != nil {
92+
state.match = matchId
93+
metadata.isMatched = true
9694
}
95+
case ._beginWith(let modifiers):
96+
var beginState = ViewState()
97+
process(modifiers: modifiers, on: &beginState, metadata: &metadata)
98+
state.beginState = (state.beginState ?? ViewState())?.merge(state: beginState)
99+
case ._process(let processor):
100+
process(modifiers: processor(metadata), on: &state, metadata: &metadata)
97101
}
98102
}
99103

0 commit comments

Comments
 (0)