ios view 上有个子viewheaderView 给headerView添加向上向下拖拽手势 headerView Y跟随拖拽
要实现让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 著作权归作者所有。请勿转载和采集!