要实现让headerView随着向上或向下拖拽手势而改变Y坐标,可以使用UIPanGestureRecognizer来监听拖拽手势,并在手势发生变化时更新headerView的位置。

首先,你需要在视图控制器的viewDidLoad方法中添加拖拽手势识别器,并将它添加到headerView上:

override func viewDidLoad() {
    super.viewDidLoad()

    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))
    headerView.addGestureRecognizer(panGesture)
}

然后,你需要实现handlePanGesture方法来处理手势的变化,并更新headerView的位置:

@objc func handlePanGesture(_ gesture: UIPanGestureRecognizer) {
    let translation = gesture.translation(in: view)

    if let targetView = gesture.view {
        targetView.center = CGPoint(x: targetView.center.x, y: targetView.center.y + translation.y)
    }

    gesture.setTranslation(.zero, in: view)
}

在这个方法中,我们首先获取手势在父视图中的偏移量,并将这个偏移量应用到headerView的中心点上。然后,我们将手势的偏移量重置为零,以便在下一次手势变化时使用。

这样,当你在headerView上进行向上或向下的拖拽手势时,headerView的Y坐标将会跟随手势的变化而改变


原文地址: https://www.cveoy.top/t/topic/iMzd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录