2016-11-10 59 views
0

我triying以編程instert的UIScrollView的內部的看法,但它不會出現在這裏是我的代碼:熱添加視圖以滾動型編程方式使用佈局約束

mainScrollView.translatesAutoresizingMaskIntoConstraints = false 


     self.view.addSubview(mainScrollView) 

     //Add Trailing 
     let trailingConstraint = NSLayoutConstraint(item: mainScrollView, attribute: .trailing, relatedBy: .equal, toItem: self.view, attribute: .trailing, multiplier: 1, constant: 0) 
     self.view.addConstraint(trailingConstraint) 

     //Add Leading 
     let leadingConstraint = NSLayoutConstraint(item: mainScrollView, attribute: .leading, relatedBy: .equal, toItem: self.view, attribute: .leading, multiplier: 1, constant: 0) 
     self.view.addConstraint(leadingConstraint) 

     //Add Top 
     let topConstraint = NSLayoutConstraint(item: mainScrollView, attribute: .top, relatedBy: .equal, toItem: self.view, attribute: .top, multiplier: 1, constant: 0) 
     self.view.addConstraint(topConstraint) 

     //Add Bottom 
     let bottomConstraint = NSLayoutConstraint(item: mainScrollView, attribute: .bottom, relatedBy: .equal, toItem: self.view, attribute: .bottom, multiplier: 1, constant: 0) 
     self.view.addConstraint(bottomConstraint) 

     let contentView = UIView() 
     contentView.translatesAutoresizingMaskIntoConstraints = false 
     contentView.backgroundColor = .blue 
     mainScrollView.addSubview(contentView) 

     //Add Trailing 
     let trailingConstraintContent = NSLayoutConstraint(item: contentView, attribute: .trailing, relatedBy: .equal, toItem: mainScrollView, attribute: .trailing, multiplier: 1, constant: 0) 
     mainScrollView.addConstraint(trailingConstraintContent) 

     //Add Leading 
     let leadingConstraintContent = NSLayoutConstraint(item: contentView, attribute: .leading, relatedBy: .equal, toItem: mainScrollView, attribute: .leading, multiplier: 1, constant: 0) 
     mainScrollView.addConstraint(leadingConstraintContent) 

     //Add Top 
     let topConstraintContent = NSLayoutConstraint(item: contentView, attribute: .top, relatedBy: .equal, toItem: mainScrollView, attribute: .top, multiplier: 1, constant: 0) 
     mainScrollView.addConstraint(topConstraintContent) 

     //Add Bottom 
     let bottomConstraintContent = NSLayoutConstraint(item: contentView, attribute: .bottom, relatedBy: .equal, toItem: mainScrollView, attribute: .bottom, multiplier: 1, constant: 0) 
     mainScrollView.addConstraint(bottomConstraintContent) 

第一滾動型是插入因爲我添加了背景顏色,我可以看到它,但我不能看到添加爲背景顏色藍色的contentview。

任何幫助?

UPDATE

我曾嘗試以下並沒有成功:

mainScrollView.translatesAutoresizingMaskIntoConstraints = false 
     let contentView = UIView() 
     contentView.translatesAutoresizingMaskIntoConstraints = false 

     mainScrollView.backgroundColor = .red 
     contentView.backgroundColor = .blue 

     self.view.addSubview(mainScrollView) 
     mainScrollView.addSubview(contentView) 

     let viewsDictionary = ["mainScrollView": mainScrollView, "contentView": contentView] 

     let mainScrollViewVerticalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "V:|[mainScrollView]|", options: [], metrics: nil, views: viewsDictionary) 
     let mainScrollViewHorizontalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "H:|[mainScrollView]|", options: [], metrics: nil, views: viewsDictionary) 
     self.view.addConstraints(mainScrollViewVerticalConstraint) 
     self.view.addConstraints(mainScrollViewHorizontalConstraint) 

     let contentViewVerticalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "V:|[contentView]|", options: [], metrics: nil, views: viewsDictionary) 
     let contentViewHorizontalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "H:|[contentView]|", options: [], metrics: nil, views: viewsDictionary) 
     mainScrollView.addConstraints(contentViewVerticalConstraint) 
     mainScrollView.addConstraints(contentViewHorizontalConstraint) 
+0

我想你應該添加寬度和高度內容查看 –

+0

但是,如果我告訴了內容查看特質,導線和頂下來,這應該得到了滾動或不是所有的空間? –

+0

是的,但還不夠。 scrollView需要知道內容的寬度和高度來滾動。讓我設置scrollView的contentSize或設置寬度和高度爲contentView –

回答

-2
  • 使用的.xib文件
  • 創建一個自定義視圖應用約束自定義視圖的子組件in .xib(自動佈局)
  • 創建自定義視圖即時

    MyView * myview = [[[NSBundle mainBundle] loadNibNamed:@「nibName」owner:nil options:nil] objectAtIndex:0];

  • 設置它的幀屏幕的寬度

    的CGRect屏幕尺寸= [UIScreen mainScreen] .bounds.size; myView = CGRectMake(0.0,0.0,screenSize.width,100.0);

  • 添加到父視圖

    [parentView addSubView:MyView的];

+0

我需要用自動佈局和編程方式,視圖是從JSON生成的。 –

0

當添加子視圖要記住的是,以固定這些在某種程度上有可能使自動佈局評價的高度,這是因爲滾動視圖通過確定的總和決定了內容的大小最重要的事情高度子視圖(垂直情況下)。 所以你應該在VFL中指定高度。例如。

let contentViewVerticalConstraint=NSLayoutConstraint.constraints(withVisualFormat: "V:|[contentView(300)]", options: [], metrics: nil, views: viewsDictionary) 
+0

我試過添加它買我看不到其他顏色視圖裏面:S –

+0

我已經做了編輯嘗試它 –

相關問題