У меня есть UIStackView, и я пытаюсь добавить 2 метки в качестве детей. Когда я добавляю их с помощью addArrangedSubview, в моем представлении ничего не отображается, но когда я просто использую addSubview, отображаются оба ярлыка (хотя и не там, где я хочу). Что я делаю не так?
import UIKit
class RepCounterView : UIView {
var count : Int = 0
lazy var repCountLabel: UILabel = {
let repCountLabel = UILabel(frame: CGRect.init(x: 0, y: 0, width: 120, height: 120))
repCountLabel.textColor = UIColor.white
repCountLabel.font = UIFont.systemFont(ofSize: 100)
repCountLabel.text = String(count)
repCountLabel.textAlignment = .center
return repCountLabel
}()
lazy var repsLabel: UILabel = {
let repsLabel = UILabel(frame: CGRect.init(x: 0, y: 0, width: 120, height: 120))
repsLabel.textColor = UIColor.white
repsLabel.font = UIFont.systemFont(ofSize: 10)
repsLabel.text = repCountLabel.text == "1" ? "rep" : "reps"
return repsLabel
}()
lazy var stackView : UIStackView = {
let stackView = UIStackView()
stackView.axis = .horizontal
stackView.distribution = .fill
stackView.alignment = .center
return stackView
}()
override init(frame: CGRect) {
super.init(frame: frame)
self.setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.setup()
}
override func draw(_ rect: CGRect) {
self.layer.cornerRadius = self.bounds.size.width / 2
}
func setup() {
self.clipsToBounds = true
self.addSubview(self.stackView)
// This is where .addSubview works, but this doesn't
self.stackView.addArrangedSubview(repCountLabel)
self.stackView.addArrangedSubview(repsLabel)
}
}