您可以使用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函数中处理手势的开始、变化和结束状态。在手势变化状态下,我们根据手势的偏移量来移动父视图的位置,从而实现了整个父视图跟随拖拽的效果

ios view上有个子view headerView 给headerView添加向上向下拖拽手势 拖拽的时候整个父视图跟随拖拽

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

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