SwiftUI Drawer v0.0.3 Release Notes

Release Date: 2020-07-16 // almost 4 years ago
  • ๐Ÿฑ ๐Ÿฅณ New Declarative View Modifiers!

    ๐Ÿ‘ Thank you for all your support and feature requests!

    New declarative view modifiers will help you customize the drawer experience. Shoutout to u/pupdogg007 for my favorite requested feature: locking the drawer.

    ๐Ÿ“ฑ I also spent a lot of time refining the fluidity of the drawer animations. In v0.0.2, I made the drags more responsive by toggling animation. In v0.03, after formulating a function on Desmos, I am introducing 'springiness' to the drawers when they are pulled beyond their boundaries. This animation feels more fluid by asymptotically reducing the influence of a drag.

    ๐Ÿ”’ ๐Ÿ”’ Locked

    Locks the drawer in a controlled position. When set to true, the drawer will animate into the locked height.

    ๐Ÿ”’ Lock into the current resting height

    /\*Drawer\*/.locked($locked) { (currentPosition) inreturn currentPosition }
    

    ๐Ÿฑ ๐Ÿช€ Spring

    Sets the springiness of the drawer when pulled past boundaries.

    The user's drag displacement is transformed by a logistic curve for a natural hard-spring pull that reaches an asymptote.

    /\*Drawer\*/.spring(20)
    

    ๐Ÿฑ ๐Ÿ˜ด OnRest

    โšก๏ธ A callback to receive updates when the drawer reaches a new resting level. This closure is executed every time the drawer reaches a new resting hieght. Use this when you want to receive updates on the drawer's changes.

    /\*Drawer\*/.onRest { (restingHeight) inprint(restingHeight) }
    

    ๐Ÿฑ ๐Ÿ’ฅ Impact

    Sets the haptic impact of the drawer when resting

    /\*Drawer\*/.impact(.light)
    

    Other Notes

    ๐Ÿ—„ Deprecated the init's impact parameter to prefer the declarative modifier.