Я застрял на этой проблеме почти неделю.Я даже отменил свой код и написал тот же код, что и некоторые учебные пособия, но я не могу показать, что мой UICollectionView
будет отображаться в виде всей моей жизни.У меня много другого кода, выполняемого в моих контроллерах представления, поэтому я собираюсь отобразить код, относящийся к UICollectionView
.Это то, что у меня пока есть:
просмотр контроллера:
class UARTModuleViewController: UIViewController, CBPeripheralManagerDelegate, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
override func viewDidLoad() {
super.viewDidLoad()
setupMenuBar()
}
let menuBar: MenuBar = {
let mb = MenuBar()
return mb
}()
private func setupMenuBar() {
view.addSubview(menuBar)
let horizontalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0":menuBar])
let verticalConstraint = NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0(100)]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0":menuBar])
view.addConstraints(horizontalConstraint)
view.addConstraints(verticalConstraint)
}
}
MenuBar.swift:
class MenuBar : UIView, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
lazy var collectionView : UICollectionView = {
let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.backgroundColor = UIColor.red
cv.dataSource = self
cv.delegate = self
return cv
}()
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(collectionView)
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "MenuCell")
//took out constraints here just to make the warning mentioned below easier to follow.
}
У меня есть реализованные протоколы, но я не добавил их только для того, чтобы сохранить объем кода, который я публикую.Я получаю это предупреждение после того, как UARTModuleViewController
загружается:
[LayoutConstraints] Невозможно одновременно удовлетворить ограничения.
Я пробовал рассуждать через это и не могукажется, пришли к решению.У меня также есть класс ячейки, но я подумал, что включать его не нужно, поскольку я не могу отобразить UICollectionView
.Единственное, что я могу добавить, это то, что у меня есть UIImageView
в середине представления, которое я добавил в раскадровку, и наложил ограничения следующим образом:
У кого-нибудь есть предложения относительно того, что я могу делать не так?Заранее благодарим за любую помощь или совет, который можно дать.