首页 > 解决方案 > 如何将多个表单添加到 ScrollView

问题描述

这是一个很长的形式,我把它分解成多种形式,如下所示

问题:如何将多个表单添加到 ScrollView

A) 创建表格

表格1:

Class NameAndAddrView: UIView {

  Lazy var MainStackView:UIStackView = {

  Let St = UIStackView(arrangedSubView: [LblName, LblGivenName]

    St.axis = .vertical
    St.spacing= 10
    St.distribution = .fillEqually
    St.translatesAutoresizingMaskIntoConstraints = false
    return St
  }()


   private let LblName:UILabel = {
       let lbl = UILabel()
         lbl.textColor = .lightGray
         lbl.font = .systemFont(ofSize: 12)
         lbl.text = "William"
       return lbl
     }()
    
    private let LblGivenName:UILabel = {
       let lbl = UILabel()
         lbl.textColor = .lightGray
         lbl.font = .systemFont(ofSize: 14)
         lbl.text = "123 Broadway"
       return lbl
     }()


  Override init(frame:CGRect) {
     Super.init(frame:frame) 
     
     setup()

   required init(coder aDcoder: NSCoder){
       fatalError("init(coder:) has not been implemented")

    }
   
  func setup {
 
  Self.addSubview(mainStackView)

  // do layout for stack view here


  }


Form2 and Form3 will be built in similar manner


B) 将表单(1,2,3) 添加到 ViewController

我想将多个表单添加到这个viewController
中怎么做?

Class myViewController: UIViewController {

     let scrollview : UIScrollView {

       let Sv = UIScrollView()
       Sv.translatesAutoresiingMaskIntoConstraints = false
       SV.alwaysBounceVertical = true
       return SV
     }()


    let nameView : NameAndAddrView = {

       let v = NameAndAddrView
        v.translatesAutoResizingMaskIntoContraints = false

       return v
    }()


   Override func viewDidLoad(){
     Super.viewDidLoad()

     setupViews()
  }



   func setupViews() {

    View.addSubview(scrollview)

Hoow to add multiple forms into scrollview??

    Scrollview.addSubview(nameView)

   //layout here



   } 

标签: swift5

解决方案


推荐阅读