Недавно я добавил scrollview к моему диспетчеру просмотра. Однако это привело к тому, что мой макет полностью испортился.Быстрые проблемы с ограничениями с UIScrollView (программно)
Вот изображение ниже.
(я дал UIScrollView временный красный фон, чтобы показать, что это явно принимая во весь экран)
в настоящее время. В этой точке зрения у меня есть куча вещей. Но чтобы это было просто, я сосредоточусь на верхней синей полосе, которую в моем приложении называют «topBar»
Во-первых, я определяю его в своем классе.
var topBar = UIView()
Я удаляю автоматический размер, придаю ему цвет и добавьте его в свой прокрутки.
//----------------- topBar ---------------//
topBar.setTranslatesAutoresizingMaskIntoConstraints(false)
topBar.backgroundColor = UIColor.formulaBlueColor()
self.scrollView.addSubview(topBar)
добавить его к моему viewsDictionary:
var viewsDictionary = [ "topBar":topBar]
добавить высоту к моему metricsDictionary:
let metricsDictionary = ["topBarHeight":6]
установить высоту в замасливающем ограничении.
//sizing constraints
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:[topBar(topBarHeight)]", options: NSLayoutFormatOptions(0), metrics: metricsDictionary, views: viewsDictionary))
И, наконец, часть, которая не работает. I/попытка/сделать его полная ширина «Scrollview»
// Horizontal Constraints
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"H:|[topBar]|", options: nil, metrics: nil, views: viewsDictionary))
и мое вертикальное ограничение, чтобы положить его в верхней части.
// Vertical Constraints
self.scrollView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|[topBar]", options: nil, metrics: nil, views: viewsDictionary))
Теперь, как для моего Scrollview, (тот, который, вероятно, является причиной моего макета головные боли)
Он создан следующим образом:
как самое первое, что в классе:
let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)
первая вещь в моей viewDidLoad()
self.view.addSubview(scrollView)
scrollView.setTranslatesAutoresizingMaskIntoConstraints(false)
scrollView.scrollEnabled = true
и, наконец, мой просмотрDidLayoutSubviews.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.frame = view.bounds
scrollView.contentSize = CGSize(width:2000, height: 5678)
}
^Ширина contentSize будет изменяться по ширине экрана (я только хочу вертикальной прокруткой). Но сейчас это незначительная проблема по сравнению с проблемами макета, которые у меня есть
Любая помощь относительно того, почему все сжимается вместе, будем очень благодарны!