How to add QLPreviewController as Subview in objective C

后端 未结 2 410
陌清茗
陌清茗 2020-12-28 09:04

Is it possible to add QLPreviewController to UIView as sub view.

I tried like this

[self.view addSubview:previewViewController.view] 
相关标签:
2条回答
  • 2020-12-28 09:50

    Yes its possible, see the code below:

    QLPreviewController* preview = [[QLPreviewController alloc] init];
    preview.dataSource = self;
    preview.delegate = self;
    [self addChildViewController:preview];//*view controller containment
    //set the frame from the parent view
    CGFloat w= self.quickLookView.frame.size.width; 
    CGFloat h= self.quickLookView.frame.size.height;
    preview.view.frame = CGRectMake(0, 0,w, h);
    [self.quickLookView addSubview:preview.view];    
    [preview didMoveToParentViewController:self];
    //save a reference to the preview controller in an ivar
    self.previewController = preview;
    
    0 讨论(0)
  • 2020-12-28 09:55

    Swift 3.x

    private var pVC: QLPreviewController?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // I do not not why, but it needs to be setup after delay.
        DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: setupPreview)
    }
    
    private func setupPreview() {
        if (pVC != nil) { return }
    
        let preview = QLPreviewController()
        preview.dataSource = self
        preview.delegate = self
    
        preview.view.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: previewView.frame.size)
        previewView.addSubview(preview.view)
    
        preview.didMove(toParentViewController: self)
        pVC = preview
    }
    
    0 讨论(0)
提交回复
热议问题