2016-11-10 105 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

我已经做了编辑尝试它 –

相关问题