禁用QLPreviewController中的滑动手势

时间:2016-04-19 11:10:59

标签: uiviewcontroller uigesturerecognizer uicollectionviewcell qlpreviewcontroller

我正在尝试预览UICollectionViewCell中的图像/视频/ PDF (全屏)。 对于PDF我试图使用QuickLook框架。

这是我想要做的,

的CollectionView

  • CollectiViewCell
  • QLPreviewController。查看为CollectionView.contentView
  • 的子视图

和其他单元格将很简单UIImageViews 因此,当我向右/向左滚动时,QLPreviewController总是会消耗触摸,我无法导航到下一个单元格。

我在添加qlpreviewcontroller.view(拦截触摸)后尝试添加子视图

实施如下:

    class SampleView: UIView {
        override init(frame: CGRect) {
            super.init(frame: frame)

        }

        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }

        override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
            return nil
        }
    }
    class SCGalleryCollectionViewCell: UICollectionViewCell,UIScrollViewDelegate, QLPreviewControllerDataSource {

        var quickLookController : PreviewController!
        var scrollView : UIScrollView!
        var imageView : SCImageView!
        override init(frame: CGRect) {
            super.init(frame: frame)



                    let sampleView = SampleView()
                    sampleView.translatesAutoresizingMaskIntoConstraints = false
                    contentView.addSubview(sampleView)
                    sampleView.fillHorizontally()
                    sampleView.fillVertically()
                    sampleView.backgroundColor = UIColor.greenColor()
                    contentView.bringSubviewToFront(sampleView)

            quickLookController = PreviewController()
            quickLookController.dataSource = self




         //   quickLookController.view.frame = CGRectMake(0, 0, 100, 100)
            quickLookController.view.translatesAutoresizingMaskIntoConstraints = false
            sampleView.addSubview(quickLookController.view)
            quickLookController.view.fillVertically()
            quickLookController.view.fillHorizontally()
            quickLookController.view.userInteractionEnabled = false
            quickLookController.view.gestureRecognizers = nil

        }
}

class PreviewController: QLPreviewController, UIGestureRecognizerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        view.userInteractionEnabled = false
        view.exclusiveTouch = false
        view.multipleTouchEnabled = false



    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
    }

    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        return false
    }
    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
        return false
    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        }
}

所以我的问题是,如何禁用qlpreviewcontroller上的滑动手势?

提前致谢!!

0 个答案:

没有答案