在iOS Swift中使用平移手势展开UIView

问题描述 投票:-9回答:1

我想实现一个停留在屏幕底部的视图,可以使用平移手势进行扩展,就像在iOS的Uber应用程序中一样? Uber Home screen当向下拖动时,视图将是最小化的

ios swift uiviewanimation
1个回答
1
投票

很少有第三方库可以让您轻松工作。这是其中之一。 LNPopUpController

或者,如果您想自定义代码并编写:使用一个视图控制器并在其上添加UIView。现在添加Pan Gesture以查看如下所示。

func handlePan(pan : UIPanGestureRecognizer) { 

   let velocity = pan.velocityInView(self.superview).y //; print("Velocity : \(velocity)")

    var location = pan.locationInView(self.superview!) //; print("Location : \(location)")

    var movement = self.frame
    movement.origin.x = 0
    movement.origin.y = movement.origin.y + (velocity * 0.05) //; print("Frame.y : \(movement.origin.y)")

    if pan.state == .Ended{
        print("Gesture Ended")
        panGestureEnded()
    }else if pan.state == .Began { print("Gesture Began")
        let center = self.center
        offset.y = location.y - center.y //;  print("Offset.y : \(offset.y)")


    }else{ print("Gesture else")
        animator.removeBehavior(snap)

        // Apply the initial offset.
        location.x -= offset.x
        location.y -= offset.y

        //print("location.y : \(location.y)")

        // Bound the item position inside the reference view.
        location.x = self.superview!.frame.width / 2

        // Apply the resulting item center.
        snap = UISnapBehavior(item: self, snapToPoint: location)
        animator.addBehavior(snap)


  }


}
© www.soinside.com 2019 - 2024. All rights reserved.