Disable/enable scrolling in UIPageViewController

后端 未结 5 921
轮回少年
轮回少年 2020-12-31 14:50

I got a viewController which inherits from UIPageViewController ( @interface PageScrollViewController : UIPageViewController ) Now I\'

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-31 15:04

    UIPageViewController manages a UIScrollView internally to get things done. We can find out that UIScrollView and update its isScrollEnabled property.

    let view = myPageViewController.view
    for subview in view.subviews {
        if let scrollview = subview as? UIScrollView {
            scrollview.isScrollEnabled = false
            break
        }
    }
    

    Or use this UIPageViewController extension.

    extension UIPageViewController {
    
        var scrollView: UIScrollView {
            for subview in view.subviews {
                if let scrollview = subview as? UIScrollView {
                    return scrollview
                }
            }
            fatalError()
        }
        
        var isScrollEnabled: Bool {
            get {
                return scrollView.isScrollEnabled
            }
            set {
                scrollView.isScrollEnabled = newValue
            }
        }
    }
    

提交回复
热议问题