Основная проблема в том, что letterView
не имеет размера, потому что к нему не применяются ограничения ширины или высоты.
Чтобы исправить ваш код, сделайте letterView
достаточно большим, чтобы содержать метки, которые вы добавлено как подпредставления путем добавления ограничений высоты и ширины после for
l oop:
for placeholder in 0..<answer.count {
...
}
NSLayoutConstraint.activate([
letterView.widthAnchor.constraint(equalToConstant: CGFloat(width * answer.count)),
letterView.heightAnchor.constraint(equalToConstant: CGFloat(height))
])
Я не уверен, что вы уже рассмотрели это в своем курсе, но лучше go об этом (что заняло бы намного меньше кода), означает использовать UIStackView
вместо letterView
.
Еще одна вещь, которую следует учитывать:
Если вы дадите letterView
цвет фона, вы увидите, что метки фактически выровнены вне его границ:
Это потому, что вы устанавливаете у каждой метки позиция y должна быть height
, когда она, вероятно, должна быть равна нулю:
let frame = CGRect(x: placeholder * width, y: 0, width: width, height: height)
Исправляя это, метки помещаются в пределы letterView
: