В настоящее время я реализую пользовательский вид из xib с размером Content View
, установленным в Freeform
.Вот моя иерархия просмотра контента
Несмотря на то, что просмотр контента выполнен в произвольной форме, я установил ширину 375, которая равна ширине iPhone 8.Затем я создаю пользовательский файл UIView
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
Bundle.main.loadNibNamed("DetailsWeather", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
}
После этого я задаю имя пользовательского класса xib File’s Owner
для того же пользовательского файла UIView, описанного выше.Затем я внедряю его в Main.storyboard
, добавив UIView, правильно установив ограничения и присвоив ему имя пользовательского класса, такое же, как у File’s Owner
. При запуске iPhone 8 все идеально, но переключаюсь на более маленькое устройство, такое как iPhone.5с, я заметил, что мой вид прокрутки теперь имеет горизонтальную прокрутку.В отличие от iPhone 5s, устройства с большим экраном, такого как iPhone 8+, мой вид прокрутки теперь немного потерял правую сторону.
Обратите внимание, что метки больше не совпадают с часами, которые больше расположены по центру на iP8 +
Поэтому я попытался удалить вид прокрутки, и все устройства работают нормально на устройствах,Таким образом, я подумал, что представление прокрутки должно испортить мой собственный вид.Затем я провожу самостоятельные исследования и выясняю эти темы.
Как обновить ограничения после добавления UIView из xib в UIScrollView в swift?
ScrollView Добавить SubView в swift 3
Я попробовал их решение и доработал, чтобы соответствовать моей ситуации, но ни один из них, похоже, не работает со мной.Итак, мой вопрос: есть ли способ сделать Content View файла xib подходящим для каждой ширины?