2016-04-22 219 views
0

我有一个UIScrollView添加到我的ViewController。并在该滚动视图的顶部查看。我做了以下几点:设置UIScrollView宽度

  1. 在原始视图中放置滚动视图并设置顶部,左侧,右侧和底部约束。取消选中约束到边距。

  2. 在scrollView中添加了一个UIView(用于保存我的标签等),并添加了顶部,左侧,右侧和底部约束,未约束地限制边距。并设置等宽的原始视图

  3. 然后,我添加一个图像视图和三个标签放置在滚动视图内的视图。并为它们添加顶部,左侧,右侧,底部和高度限制。

滚动视图的工作原理和我的视图不滚动,我的标签和图像视图居中,但一切都非常宽。

我想知道我是如何制作的,所以视图不宽,我不能水平滚动,只能垂直滚动。

回答

0

简而言之,在使用自动布局时,内容无效。
如果你想让你scrollview可以滚动,你应该在scrollview中添加一个容器并将原始子视图添加到容器。

例如,使用snapkit(这里也许有些错别字):

  1. 你有scrollview.set它是由等于self.view的框架自动布局
  2. [进口]然后添加一个containerView作为滚动视图的子视图。设置约束上:

    make.edges.equalTo(scrollview) // mean its frame equal to scrollview 
    make.width.equalTo(self.view) // set width equal to self.view 
    make.height.equalTo(yourheight).priorityLow() // the actual height,if no changes,you can ingore .priorityLow() 
    
  3. 添加sunviews到containerView,添加约束上必须设置为containerView,不能设置为scrollview's.forexample ,:

    containerView.addSubView(myview) 
    myview.snp_makeConstraints { (make) -> Void in 
        make.left.equalTo(self.containerView) 
        make.top.equalTo(self.containerView) 
        make.right.equalTo(self.containerView) 
        make.height.equalTo(267) 
    } 
    

阅读官方文档 - Technical Note TN2154 UIScrollView And Autolayout

+0

好吧,我想我跟着你。我会阅读您提供的文档,但基本上在滚动视图中设置内容大小没有任何影响? – m1234

+0

@ m1234是的,如果你使用autolayout.its没有effetc – clangdiagnostic

0

在滚动视图内的视图和视图控制器的根级视图之间添加等宽限制。

+0

我已经完成了 – m1234

0

我刚刚才明白这一点。试着这样做:

  1. 制作一个滚动视图
  2. 把你所有的标签和按钮的入堆栈视图(如果你不知道堆栈的意见,检查了这一点:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/
  3. 约束栈视图的宽度并确保Allignment和分布被设置为填充

enter image description here

  • 穿戴吨他堆栈视图滚动视图
  • 的内部约束滚动查看到你的心中的愿望
  • 把标签和要在滚动视图应与宽度边界帮助什么。这是我成功滚动视图的图片。希望这有助于:)

    enter image description here

    +0

    此外,如果你想要水平滚动,滚动视图设置为水平和堆栈视图水平以及:) –