小编ind*_*der的帖子

使用UIScrollView和AutoLayout以编程方式创建控制器不会正确调整视图大小

我试图以编程方式创建一个视图控制器,它将以可滚动的方式布局子视图.我试图在UIScrollView中使用AutoLayout,并在这方面阅读了所有技术说明和SO答案.但是我无法做到这一点 - 似乎我在这里缺少创建/使用或UIScrollView的一些细微差别.

我的代码在下面,我看到的输出也显示在下面的图片中.

我的期望是我会看到占据整个屏幕的棕色和绿色条纹(子视图).我知道我必须指定子视图的高度,但我不明白为什么水平大小调整不起作用.如果我没有指定水平尺寸,我希望我的子视图可以拉伸并占据屏幕的宽度,但它不会这样做.

这是我的控制器的代码.

class ScrollableRowHeadersViewController : UIViewController {

var scrollView : UIScrollView!

override func loadView() {
    self.view = UIView(frame: CGRectZero)
    scrollView = UIScrollView()
    scrollView.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.view.addSubview(scrollView)
    scrollView.backgroundColor = UIColor.blueColor()
    self.view.addVisualConstraint("H:|-0-[scrollView]-0-|", viewsDict: ["scrollView" : scrollView])
    self.view.addVisualConstraint("V:|-0-[scrollView]-0-|", viewsDict: ["scrollView" : scrollView])
    self.view.contentMode = UIViewContentMode.Redraw
}

//load all the subviews after the main view and scrollview loaded.
override func viewDidLoad() {
    var viewsDict = [String: UIView]()
    var vertical_constraints = "V:|"
    scrollView.autoresizesSubviews = true

    for i in 1...100 {
        var subview = …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios autolayout swift

2
推荐指数
1
解决办法
5581
查看次数

标签 统计

autolayout ×1

ios ×1

swift ×1

uiscrollview ×1