想法简友广场

iOS. 添加全屏Pop手势

2022-08-03  本文已影响0人  海边的遐想

1,思路分析:


image.png

// 1.获取系统的Pop手势
guard let systemGes = interactivePopGestureRecognizer else { return }

    // 2.获取手势添加到的View中
    guard let gesView = systemGes.view else { return }
    
    // 3.获取target/action
    // 3.1.利用运行时机制查看所有的属性名称
    /*
    var count : UInt32 = 0
    let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)!
    for i in 0..<count {
        let ivar = ivars[Int(i)]
        let name = ivar_getName(ivar)
        print(String(cString: name!))
    }
    */
    let targets = systemGes.value(forKey: "_targets") as? [NSObject]
    guard let targetObjc = targets?.first else { return }
    
    // 3.2.取出target
    guard let target = targetObjc.value(forKey: "target") else { return }
    
    // 3.3.取出Action
    let action = Selector(("handleNavigationTransition:"))
    
    // 4.创建自己的Pan手势
    let panGes = UIPanGestureRecognizer()
    gesView.addGestureRecognizer(panGes)
    panGes.addTarget(target, action: action)
上一篇 下一篇

猜你喜欢

热点阅读