-
Notifications
You must be signed in to change notification settings - Fork 0
hero animation
tyler edited this page Oct 10, 2023
·
5 revisions
- μΉ΄λλ₯Ό ν΄λ¦μ μΉ΄λκ° νλλλ©° μ°½μΌλ‘ μ νλ©λλ€.
1. κ°μ
2. matchedGeometryEffect
3. μ¬μ©ν λ³μ
4. μ¬μ©ν μμ
5. μ€ν¬λ¦°μ·
-
matchedGeometryEffectμ¬μ© -
xλ²νΌμ λλ¬dismissκ°λ₯ -
drag,scrollλ‘λdismissκ° κ°λ₯ν¨
-
namespaceλ‘ μ λλ©μ΄μ μ μνλ μ»΄ν¬λνΈλ€μ λ§€μΉμν΅λλ€. -
isShowλ‘ μΉ΄λλ·°μ μ°½μ λνλ¨μ κ΄λ¦¬ν©λλ€.
@Namespace var namespace
@State private var isShow = false-
viewSize: λλκ·Έλ μ€ν¬λ‘€ μ λ·°κ° μμμ§λ μ¬μ© -
scrollViewOffset: μ€ν¬λ‘€offsetμΆμ -
dragState: λλκ·Έ μwidthλheightμΆμ
@State private var viewSize = 0.0
@State private var scrollViewOffset: CGFloat = 0
@State private var dragState: CGSize = .zero-
fadeInOffset: λ·°κ° λνλ λ μ½κ°μ μ λλ©μ΄μ (10 μ λ μλ‘ μ¬λΌκ°λλ€) -
dragStartRange: μμͺ½ λμμ 60 λ²μμμλ§ λλκ·Ένμ¬ dismiss κ°λ₯ν©λλ€. -
scrollStartRange: μ΅μ μμμ 5 μ΄μ λ΄λ¦¬κΈ° μμν΄μΌ dismiss μΈν°λ μ μ΄ κ΅¬νλ©λλ€. -
dragLimit,scrollLimit: μ€μ ν Limit λ³΄λ€ λ λλκ·Έ νκ±°λ μ€ν¬λ‘€ ν΄μΌ dismiss κ° λ©λλ€.
private let fadeInOffset: CGFloat = 10
private let dragStartRange: CGFloat = 60
private let scrollStartRange: CGFloat = 5
private let dragLimit: CGFloat = 60
private let scrollLimit: CGFloat = 40| κΈ°λ₯ | μ€ν¬λ¦°μ· |
|---|---|
| νμ΄λ‘ μ λλ©μ΄μ | ![]() |
| X λ²νΌ ν΄λ¦ μ Dismiss | ![]() |
| μλλ‘ μ€ν¬λ‘€ μ Dismiss | ![]() |
| λλκ·Έ μ Dismiss | ![]() |



