Reputation: 1
Struggling on this question second day. I am facing problem with displaying stack view into scroll view. My main problem is that when I open detail view with content it starts to display all information approximately from the middle of all content Here is an image: Here is an image:
class DetailViewController: UIViewController {
private let scrollView: UIScrollView = {
let view = UIScrollView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
private let scrollStackViewContainer: UIStackView = {
let view = UIStackView()
view.axis = .vertical
view.spacing = 10
view.translatesAutoresizingMaskIntoConstraints = false
view.layoutMargins = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16)
view.isLayoutMarginsRelativeArrangement = true
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBackground
navigationController?.navigationBar.tintColor = .label
view.addSubview(scrollView)
scrollView.addSubview(scrollStackViewContainer)
scrollStackViewContainer.addArrangedSubview(gifImageView)
scrollStackViewContainer.addArrangedSubview(idLabel)
scrollStackViewContainer.addArrangedSubview(titleLabel)
scrollStackViewContainer.addArrangedSubview(publishDateLabel)
scrollStackViewContainer.addArrangedSubview(spacerView)
scrollStackViewContainer.addArrangedSubview(addToFavoriteButton)
applyConstraints()
}
private func applyConstraints() {
let scrollViewConstraits = [
scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
]
let scrollStackViewContainerConstraints = [
scrollStackViewContainer.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
scrollStackViewContainer.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),
scrollStackViewContainer.topAnchor.constraint(equalTo: scrollView.topAnchor),
scrollStackViewContainer.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
scrollStackViewContainer.widthAnchor.constraint(equalTo: scrollView.widthAnchor),
]
NSLayoutConstraint.activate(scrollViewConstraits)
NSLayoutConstraint.activate(scrollStackViewContainerConstraints)
}
}
What should I do to display all UI element initially from the top of scroll view. Like this:
Upvotes: 0
Views: 73