Как использовать PureLayout для разметки - PullRequest
0 голосов
/ 11 мая 2018

У меня возникли проблемы с настройкой PureLayout для работы с UILabel, которые я помещаю в поле зрения и пытаюсь отдалиться друг от друга

У меня есть одна метка, которая разделена некоторымиполя сверху и слева от вида.Затем у меня есть вторичная метка, которая также должна быть размещена с некоторым запасом слева от вида, а затем разнесена на столько же отступа от нижней части первой метки

Кажется, что autoPinEdge хочет UIView для ссылки на границу и UILabel, очевидно, не UIView, поэтому я пытаюсь выяснить, как заставить это работать

Моей первой мыслью было создание новых представлений, чтобы просто удерживатьпометить таким образом, чтобы я мог ссылаться на представления, чтобы получить координаты и тому подобное, но они не отображаются в представлении сейчас, вот базовая настройка

placeTitleLabelView = UIView(frame: CGRect.zero)
placeTitleLabel = UILabel(frame: CGRect.zero)
placeTitleLabel.textColor = UIColor.white
placeTitleLabel.font = UIFont(name: "Helvetica", size: 25)

placeTitleLabelView.addSubview(placeTitleLabel)
scrollView.addSubview(placeTitleLabelView)

placeDistanceLabelView = UIView(frame: CGRect.zero)
placeDistanceLabel = UILabel(frame: CGRect.zero)
placeDistanceLabel.textColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
placeDistanceLabel.font = UIFont(name: "Helvetica", size: 18)

placeDistanceLabelView.addSubview(placeDistanceLabel)
scrollView.addSubview(placeDistanceLabelView)

А потом я пытаюсь установить все ограничения

placeTitleLabelView.autoPinEdge(.left, to: .left, of: scrollView, withOffset: edgesInset)
placeTitleLabelView.autoPinEdge(.top, to: .top, of: scrollView, withOffset: edgesInset)

placeDistanceLabelView.autoPinEdge(.left, to: .left, of: scrollView, withOffset: edgesInset)
placeDistanceLabelView.autoPinEdge(.top, to: .bottom, of: placeTitleLabelView, withOffset: edgesInset / 2)

Все остальные элементы, с которыми я работаю выше, это показывают просто отлично, но я не понимаю, почему это не так, они были, когда они были просто ярлыками, но я не мог получитьограничения для работы с ними.

1 Ответ

0 голосов
/ 11 мая 2018

Мне удалось заставить их работать, убедившись, что я установил высоту содержимого представления на высоту метки после установки размера меток

placeDistanceLabel.sizeToFit()
placeDistanceLabelView.autoSetDimension(.height, toSize: placeDistanceLabel.bounds.height)
placeDistanceLabelView.autoPinEdge(.left, to: .left, of: scrollView, withOffset: edgesInset)
        placeDistanceLabelView.autoPinEdge(.top, to: .bottom, of: 
placeTitleLabelView, withOffset: edgesInset / 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...