Я пытаюсь отобразить содержимое в UIPageViewController, но мне пока не повезло. Мне удалось отобразить точки просмотра страницы, и цвет фона (чир) применяется правильно, но это все.
В моем коде у меня есть PageViewController, наследующий от UIPageViewController, и InPageViewController, наследующий от UIViewController какстраницы содержимого внутри родительского представления.
Внутри InPageViewController:
private let labelView: UILabel = {
let label = UILabel()
// label.translatesAutoresizingMaskIntoConstraints = false
label.text = "Label"
return label
}()
init(data: PageData) {
super.init(nibName: nil, bundle: nil)
labelView.text = data.dataName
view.backgroundColor = .systemTeal
view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(labelView)
// These are the constraints I am trying to set. Tried lots of different variations already
// NSLayoutConstraint.activate([
// labelView.centerXAnchor.constraint(equalTo: view.layoutMarginsGuide.centerXAnchor),
// labelView.centerYAnchor.constraint(equalTo: view.layoutMarginsGuide.centerYAnchor),
// ])
}
Это текущее состояние, отображаемое для отображения цвета фона, но не надписи. Всякий раз, когда я добавляю массив ограничений, фон исчезает и возвращается к своему стандартному серому цвету, который я установил в PageViewController
.
let dataArray = [PageData(dataName: "Data"), PageData(dataName: "Lore")]
override func viewDidLoad() {
super.viewDidLoad()
setupView()
}
func setupView() {
title = "A fistful of Datas"
}
lazy var arrayInPageViewController: [InPageViewController] = {
var inPageVC = [InPageViewController]()
for data in dataArray {
inPageVC.append(InPageViewController(data: data))
}
return inPageVC
}()
override init(transitionStyle style: UIPageViewController.TransitionStyle, navigationOrientation: UIPageViewController.NavigationOrientation, options: [UIPageViewController.OptionsKey : Any]? = nil) {
super.init(transitionStyle: .scroll, navigationOrientation: navigationOrientation, options: nil)
self.dataSource = self
self.delegate = self
self.view.backgroundColor = .systemGray
setViewControllers([arrayInPageViewController[0]], direction: .forward, animated: true, completion: nil)
print(dataArray)
}
Здесь я устанавливаю родительское представление. У меня также есть расширение, в котором я запускаю заглушки.
Я относительно новичок в программировании в целом, и у меня все еще возникают проблемы с пониманием логики автоматического размещения в Swift, поэтому любая помощь приветствуется.