Using ScrollView Programmatically in Swift 3

后端 未结 5 596
执念已碎
执念已碎 2020-11-28 11:00

I have searched other questions and seem to still have some trouble creating my scrollView programmatically with autolayout in swift 3. I am able to get my scrollview to sho

5条回答
  •  醉话见心
    2020-11-28 11:47

    Copy and paste this controller in your project

    class BaseScrollViewController: UIViewController {
    
    lazy var contentViewSize = CGSize(width: self.view.frame.width, height: self.view.frame.height + 100)
    lazy var scrollView: UIScrollView = {
        let view = UIScrollView(frame: .zero)
        view.backgroundColor = .white
        view.frame = self.view.bounds
        view.contentSize = contentViewSize
        view.translatesAutoresizingMaskIntoConstraints = false
        return view
    }()
    lazy var containerView: UIView = {
        let v = UIView()
        v.backgroundColor = .white
        v.frame.size = contentViewSize
        return v
    }()
    
    override func viewDidLoad() {
        view.backgroundColor = .white
        view.addSubview(scrollView)
        scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    
        scrollView.addSubview(containerView)
        setupContainer(containerView)
        super.viewDidLoad()
        
    }
    
    public func setupContainer(_ container: UIView) {
        
    }
    

    }

    Usage for above code:

    class ClientViewController: BaseScrollViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // do your stuff here
    }
    
    override func setupContainer(_ container: UIView) {
        // add views here
    }
    

    }

提交回复
热议问题