Reputation: 5523
I am trying to make StackView content to be scrollable. I inserted dummy UIImage views to try to get it to work but it doesn't scroll. The Stack and Scroll views are already connected to the IB. What am I missing?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var menuStackView: UIStackView!
@IBOutlet weak var menuScrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
itemImageView = UIImageView(image: UIImage(named: "splash2"))
itemImageView.contentMode = .ScaleAspectFit
self.menuStackView.addArrangedSubview(itemImageView)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
menuScrollView.contentSize = CGSize(width: menuStackView.frame.width, height: menuStackView.frame.height)
}
}
Upvotes: 1
Views: 1663
Reputation: 6599
My thought would be to create a UIView that you setup your scrollview with. Then add the stack view to that content view. Because otherwise, to make a stackview work like you want it to, I had to add constraints on all sides of it to the scroll view and add a height and width constraint.
I've also answered a similar question here that might help:
https://stackoverflow.com/a/32999501/4626443
And here's the link to a project with a working scrolling stackview that you can use to get going again:
https://github.com/Rnorback/ScrollingStackView
Upvotes: 2