Цель:
Создать вот такую штуку, программно:
Что я сделал:
class CHDotsView: UIStackView {
var dotsCount: Int?
init(frame: CGRect = CGRect(x: 0, y: 0, width: 0, height: 0), dotsCount: Int, width: CGFloat, height: CGFloat) {
super.init(frame: frame)
self.axis = .horizontal
self.distribution = .equalSpacing
self.spacing = 20
self.dotsCount = dotsCount
for _ in 1 ... dotsCount {
let dotsView = UIView()
dotsView.backgroundColor = .red
dotsView.layer.cornerRadius = width / 2
dotsView.frame.size.width = width
dotsView.frame.size.height = height
self.addArrangedSubview(dotsView)
}
}
required init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
После чего вызываю в нужном мне контролере:
func setupDotView() { // данный метод вызывается во ViewDidLoad
let dotsContainer = UIView()
let dots = CHDotsView(dotsCount: 1, width: 10, height: 10)
dotsContainer.addSubview(dots)
dotsContainer.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(dotsContainer)
NSLayoutConstraint.activate([
dotsContainer.widthAnchor.constraint(equalToConstant: 200),
dotsContainer.heightAnchor.constraint(equalToConstant: 100),
dotsContainer.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 120),
dotsContainer.centerXAnchor.constraint(equalTo: self.view.centerXAnchor)
])
}
Вот так выглядит debugUI:
Вопрос:
Что я сделал не так? Нет ни ошибок, ни предупреждений. Просто не вижу UIView, которые я создал и запушил в UIStackView.