Swipe up or down prototyping

Updated
Sep 10, 2022 9:51 AM
Created
Sep 10, 2022 9:36 AM
Tags
SwiftSwiftUI.framework
Attributes

import SwiftUI

struct BookTaskManager: View {
  var body: some View {
    
    ScrollView(.horizontal) {
      LazyHStack {
        
        Card()
        Card()
        Card()
        
      }
    }
    
  }
  
  struct Card: View {
    
    /**
     ???
     Use just State instead of GestureState to trigger animation on gesture ended.
     This approach is right?
     
     refs:
     https://stackoverflow.com/questions/72880712/animate-gesturestate-on-reset
     */
    @State private var position: CGSize = .zero
    
    @GestureVelocity private var velocity: CGVector
    
    var body: some View {
      stick
        .padding(10)
    }
    
    private var stick: some View {
      RoundedRectangle(cornerRadius: 16, style: .continuous)
        .fill(Color.blue)
        .frame(width: 100, height: 100)
        .offset(position)
        .gesture(
          DragGesture(
            minimumDistance: 0,
            coordinateSpace: .local
          )
          .onChanged({ value in
            withAnimation(.interactiveSpring()) {
              position.height = value.translation.height
            }
          })
          .onEnded({ value in
            
            let distance = CGSize(
              width: -position.width,
              height: -position.height
            )
            
            let mappedVelocity = CGVector(
              dx: velocity.dx / distance.width,
              dy: velocity.dy / distance.height
            )
                                                         
            withAnimation(
              .interpolatingSpring(
                stiffness: 50,
                damping: 10,
                initialVelocity: mappedVelocity.dy
              )
            ) {
              position.width = 0
              position.height = 0
            }
          })
          .updatingVelocity($velocity)
          
        )
      
    }
  }

}

struct BookTaskManager_Previews: PreviewProvider {
  static var previews: some View {
    BookTaskManager()
  }
}

Recently updated notes

πŸ“–
Notes

NameTagsUpdated
just happened
SwiftUI.frameworkSwift
Sep 22, 2022 6:13 PM
Rendering ascii utils
Swift
Sep 22, 2022 8:45 AM
SwiftUI EnvironmentValues - SwiftUI.PropertyList
SwiftSwiftUI.framework
Sep 22, 2022 10:13 AM
Regex example
Sep 21, 2022 1:27 PM
SwiftUI animation - Structural Identity
SwiftSwiftUI.framework
Sep 16, 2022 12:39 PM
Verge v9 migration note
Sep 15, 2022 3:49 AM
Merging Blob, Metaball
Sep 14, 2022 12:28 PM
SwiftUI Testing
Sep 12, 2022 6:33 PM
Swipe up or down prototyping
SwiftSwiftUI.framework
Sep 10, 2022 9:51 AM
Pick an emoji at random
SwiftMemoDevelopmentSwiftScripting
Sep 10, 2022 7:00 AM
flex-wrap in SwiftUI with Layout API
SwiftSwiftUI.framework
Sep 9, 2022 4:11 PM
SwiftUI backports
SwiftSwiftUI.framework
Sep 9, 2022 4:03 PM
Making Slides in SwiftUI
Swift
Sep 8, 2022 6:35 PM
CORS on Firebase
Sep 5, 2022 8:48 AM
swift-async-shell
SwiftBookmark
Sep 4, 2022 12:34 PM
Furniture shops
Bookmark
Sep 4, 2022 11:06 AM
New StateReader syntax
VergeGroup/VergeSwift
Sep 3, 2022 8:07 PM
Swift snippets for scripting
SwiftSwiftScripting
Sep 4, 2022 12:35 PM
Mixpanel note
mixpanel
Sep 2, 2022 3:23 PM
[scrapbook] Trampoline implementation EventEmitter - Verge
Swift
Sep 1, 2022 3:45 PM
apple/swift-book
SwiftBookmark
Aug 31, 2022 4:50 PM
Swift Concurrency γƒγƒΌγƒˆγ‚·γƒΌγƒˆ
SwiftMemoBookmark
Aug 29, 2022 4:59 AM
Check if it is in Task
SwiftConcurrency
Aug 27, 2022 6:11 AM
Behaviors actor annotated type - Swift Concurrency
SwiftConcurrency
Aug 26, 2022 5:23 PM
Syntax Design in Swift
Swift
Aug 25, 2022 12:41 PM
[Syntax Design] .background(.blue)
SwiftSyntaxDesign
Aug 25, 2022 12:41 PM
WidgetKit note
iOSSwift
Sep 15, 2022 1:58 PM
ActivityKit note
iOSSwift
Sep 15, 2022 3:13 PM
Hides warnings coming from calling main actor isolated things
SwiftConcurrency
Aug 25, 2022 1:32 PM
Coffee Grinder - VARIA VS3 GRINDER
Coffee
Aug 29, 2022 6:14 AM
Logger template for iOS12+
Swift
Sep 13, 2022 12:35 PM
Like UIScrollView, how to get "rubber banding effect"
Sep 15, 2022 5:43 AM
πŸ› οΈ
Valuable iOS development resources
UIKit.frameworkSwiftSwiftUI.frameworkObjective-CCocoaiOS
Aug 29, 2022 5:53 AM