iOS指定高度弹出页、可拖动点击空白包括状态栏收回

1.首先需要指定弹出页面高度

/**
     页面高度
     */
    func groundHeight() -> CGFloat {
        return SlidePopViewController.windowSize.height-100
    }
    /// 展示
    class func show(_ controller: UIViewController) {
        let vc = SlidePopViewController()
        vc.modalTransitionStyle = .coverVertical
        vc.modalPresentationStyle = .overCurrentContext
        controller.present(vc, animated: false) {
            let size = SlidePopViewController.windowSize
            vc.view.frame = CGRect(x: 0, y: size.height, width: size.width, height: vc.groundHeight())
            UIView.animate(withDuration: 0.25, delay: 0, options: .curveEaseInOut, animations: {
                vc.view.frame = CGRect(x: 0, y: size.height-vc.groundHeight(), width: size.width, height: vc.groundHeight())
            }, completion: nil)
        }
    }

2.添加控制滑动手势

let gesture = UIPanGestureRecognizer(target: self, action: #selector(slidePanAction(_:)))
        gesture.delegate = self
        view.addGestureRecognizer(gesture)

3.点击空白处包括状态栏收回:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let point = touches.first?.location(in: keyWindow) {
            if !view.frame.contains(point) {
                /**
                 点击空白处须收回
                 */
                dismiss(animated: true, completion: nil)
            }
        }
    }

具体代码github

原文地址:https://blog.csdn.net/weixin_42979360/article/details/122644687

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25442.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注