设置UIScrollView宽度

时间:2016-04-22 01:46:44

标签: ios swift uiscrollview

我在我的ViewController中添加了一个UIScrollView。并在Scrollview顶部查看。我做了以下事情:

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

  2. 在scrollView中添加了一个UIView(用于保存我的标签等)并添加了top,left,right和bottom约束,约束了未选中的边距。并设置与原始视图相等的宽度

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

  4. 滚动视图有效,我的视图会滚动,我的标签和图片视图居中,但一切都很宽。

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

3 个答案:

答案 0 :(得分:0)

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

例如,使用snapkit(这里可能有一些拼写错误):

  1. 你有一个scrollview.set,它与selflayout相同的self.view框架
  2. [import]然后添加一个containerView作为scrollview的子视图。设定约束:

     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的.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)
    }
    
  4. 阅读此官方文档 - Technical Note TN2154 UIScrollView And Autolayout

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我最近刚想出来了。试着这样做:

  1. 制作滚动视图
  2. 将所有标签和按钮放入堆栈视图中(如果您不了解堆栈视图,请查看:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/
  3. 约束堆栈视图的宽度,并确保将Allignment and Distribution设置为fill
  4. enter image description here

    1. 将堆栈视图放在滚动视图中
    2. 将Scroll视图限制在你的心愿
    3. 在滚动视图中放置标签和所需内容应该有助于宽度边界。这是我成功滚动视图的图片。希望这会有所帮助:)

      enter image description here