我试图以编程方式创建一个视图控制器,它将以可滚动的方式布局子视图.我试图在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)