IOS CustomView обнимает проблему в стеке - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть пользовательский вид даты (по вертикали день, название месяца и год).Я хочу использовать это представление внутри горизонтального стекового представления с другим стековым представлением. Мой пользовательский вид должен обернуть его содержимое. Например, самый большой контент - месяц = ​​декабрь, поэтому у представления должна быть ширина, равная декабрю. Когда я использую его в stackview, его ширина обнимаетсяК сожалению, код пользовательского вида ниже. Почему ширина моего вида обнимается?Я не хочу устанавливать фиксированную высоту.

 override init(frame: CGRect) {
    super.init(frame: frame)
    prepare()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    prepare()
}

fileprivate func prepare() {
    self.backgroundColor = UIColor.white
    let itemStack = UIStackView()
    itemStack.axis = .vertical
    itemStack.alignment = .center
    itemStack.isLayoutMarginsRelativeArrangement = true
    itemStack.translatesAutoresizingMaskIntoConstraints = false
    day.text = "28"
    month.text = "Ağustos"
    year.text = "2015"
    itemStack.addArrangedSubview(day)
    itemStack.addArrangedSubview(month)
    itemStack.addArrangedSubview(year)

    self.addSubview(itemStack)
    self.topAnchor.constraint(equalTo: itemStack.topAnchor).isActive = true
    self.bottomAnchor.constraint(equalTo: itemStack.bottomAnchor).isActive = true
    self.leadingAnchor.constraint(equalTo: itemStack.leadingAnchor).isActive = true
    self.trailingAnchor.constraint(equalTo: itemStack.trailingAnchor).isActive = true
}

fileprivate func formatValue() {
    day.text = value?.toString(dateFormat: DateFormat.dd)
    month.text = value?.toString(dateFormat: DateFormat.MMMM)
    year.text = value?.toString(dateFormat: DateFormat.yyyy)
    layoutIfNeeded()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...