1
Это мой код, чтобы сделать UILabel авторазмер:Swift ограничение ширина авторазмер этикетки
gmatesLabel.topAnchor.constraint(equalTo: homeButton.bottomAnchor, constant: 5).isActive = true
gmatesLabel.trailingAnchor.constraint(equalTo: gmatesUniversitySeparatorView.leadingAnchor, constant: -20).isActive = true
gmatesLabel.heightAnchor.constraint(equalToConstant: 40).isActive = true
// gmatesLabel.widthAnchor.constraint(equalTo: gmatesLabel.widthAnchor, multiplier: 0.5)
gmatesLabel.setContentCompressionResistancePriority(UILayoutPriorityRequired, for: .horizontal)
Также я попробовал этот код:
gmatesLabel.widthAnchor.constraint(equalTo: gmatesLabel.widthAnchor, multiplier: 0.5, constant: 150).isActive = true
Но проблема этикетки всегда термоусаживаемые, что сделал я пропустили здесь?
Update Я добавил leadingAnchor
gmatesLabel.heightAnchor.constraint(equalToConstant: 40).isActive = true
И это функция, чтобы установить свою метку:
fileprivate func setCommonGmatesText(_ count: Int) {
let commonGmatesString = NSMutableAttributedString(string: "\(count)", attributes: [NSFontAttributeName : Font.boldFont22, NSForegroundColorAttributeName: Color.lightGray])
commonGmatesString.append(NSAttributedString(string: "\(NSLocalizedString("commonGmates", comment: "How much common gmates we got"))", attributes: [NSFontAttributeName : Font.regularFont14, NSForegroundColorAttributeName: Color.lightGray]))
gmatesLabel.attributedText = commonGmatesString
gmatesLabel.sizeToFit()
}
Почему там нет ведущего якоря? вы можете определить ведущий якорь и определить, например, больше 5. При необходимости ярлык будет расти до этого размера, если нет (потому что текст не достаточно длинный), он будет соответствовать только тексту – Ocunidee
@Ocunidee Я не добавлял 'leadingAnchor', потому что мое представление будет вычеркнуто' top-right' и определения 'height-width' будет недостаточно, чтобы не добавлять другое ограничение. Использование раскадровки таким образом отлично работает, но программно я не знаю, почему это не сработало! – Chlebta
Здесь вы хотите, чтобы ширина изменялась, поэтому вы не можете установить ширину, просто высоту. Чтобы убедиться, что метка не будет больше, чем надзор, вы должны установить ведущую привязку, которая равна или больше, чем что-то вроде 8pt (обычный размер поля). Вы измените размер метки. Может быть, скриншот поможет увидеть вашу точную проблему. – Ocunidee