Попытка поместить представление UIViewController в представление прокрутки для всех возможных размеров экрана.
class ScrollableContentViewController: UIViewController {
private lazy var scrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
return scrollView
}()
private var contentView: UIView?
override func viewDidLoad() {
super.viewDidLoad()
guard let view = self.view else {
return
}
view.removeFromSuperview()
self.view = scrollView
scrollView.addSubview(view)
self.contentView = view.superview
if let contentView = view.superview {
view.translatesAutoresizingMaskIntoConstraints = false
view.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
view.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
view.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
view.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true
}
let wc = view.widthAnchor.constraint(equalTo: scrollView.widthAnchor)
wc.priority = UILayoutPriority(rawValue: 1000)
wc.isActive = true
let hc = view.heightAnchor.constraint(equalTo: scrollView.heightAnchor)
hc.priority = UILayoutPriority(rawValue: 700)
hc.isActive = true
}
}
А вот мой тест ViewController в раскадровке введите описание изображения здесь
Проблема
, если я поставлю h c .priority = UILayoutPriority (rawValue: 100), все работает на небольших телефонах с прокруткой, но на больших экранах автоматическое расположение l oop происходит, когда я сделать hc.priority = UILayoutPriority(rawValue: 1000)
все работает на больших телефонах (без прокрутки) и без прокрутки на маленьких экранах - это работает, как задумано.
Вопрос Почему hc.priority = UILayoutPriority(rawValue: 100)
вызывает макет l oop ? Но в то же время хорошо работает на маленьких экранах.
Пытался его отладить, но не получил достаточных результатов