ios view上有个子view headerView 给headerView添加向上向下拖拽手势 拖拽的时候整个父视图跟随拖拽
您可以使用UIPanGestureRecognizer来实现向上向下拖拽手势,并根据手势的偏移量来移动父视图的位置。以下是一个示例代码:
import UIKit
class ViewController: UIViewController {
let headerView = UIView()
var initialHeaderViewCenter = CGPoint()
override func viewDidLoad() {
super.viewDidLoad()
// 设置headerView的frame和样式
headerView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 200)
headerView.backgroundColor = UIColor.red
view.addSubview(headerView)
// 添加拖拽手势
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))
headerView.addGestureRecognizer(panGestureRecognizer)
}
@objc func handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer) {
let translation = gestureRecognizer.translation(in: view)
switch gestureRecognizer.state {
case .began:
// 记录初始位置
initialHeaderViewCenter = headerView.center
case .changed:
// 根据手势的偏移量移动父视图的位置
headerView.center = CGPoint(x: initialHeaderViewCenter.x, y: initialHeaderViewCenter.y + translation.y)
default:
break
}
}
}
在上述代码中,我们创建了一个headerView并添加到了父视图中。然后,我们为headerView添加了一个UIPanGestureRecognizer手势,并在handlePanGesture函数中处理手势的开始、变化和结束状态。在手势变化状态下,我们根据手势的偏移量来移动父视图的位置,从而实现了整个父视图跟随拖拽的效果
原文地址: https://www.cveoy.top/t/topic/iMyQ 著作权归作者所有。请勿转载和采集!