У меня есть две UILabel рядом друг с другом в представлении, где я буду показывать комментарии к посту, один для имени пользователя и один для отметки времени. Я конвертирую метку времени в простой формат, такой как «1 ч» для часа назад, «22 м» для 22 минут назад и т. Д.
Это мои две метки:
var usernameLabel: UILabel = {
let usernameLabel = UILabel()
usernameLabel.numberOfLines = 1
usernameLabel.lineBreakMode = .byTruncatingTail
usernameLabel.font = UIFont.boldSystemFont(ofSize: 15)
usernameLabel.textColor = UIColor.darkGray
usernameLabel.translatesAutoresizingMaskIntoConstraints = false
usernameLabel.text = "Username"
usernameLabel.isUserInteractionEnabled = true
usernameLabel.isExclusiveTouch = false
usernameLabel.backgroundColor = .green
return usernameLabel
}()
var commentDateLabel: UILabel = {
let commentDateLabel = UILabel()
commentDateLabel.font = UIFont.systemFont(ofSize: 12)
commentDateLabel.textColor = UIColor.lightGray
commentDateLabel.translatesAutoresizingMaskIntoConstraints = false
commentDateLabel.backgroundColor = .red
return commentDateLabel
}()
Я добавляю ограничения к ним обоим, чтобы убедиться, что они вписываются в мое представление, например:
commentDateLabel.leftAnchor.constraint(equalTo: usernameLabel.rightAnchor, constant: 8).isActive = true
commentDateLabel.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -16).isActive = true
usernameLabel.leftAnchor.constraint(equalTo: profilePictureImageView.rightAnchor, constant: 16).isActive = true
Проблема, с которой я сталкиваюсь, заключается в том, что дата выравнивается по правому краю, а имя пользователя занимает всю ширину. Мне бы хотелось, чтобы это было по-другому - когда метка имени пользователя настолько широка, насколько это необходимо, а дата занимает все оставшееся место.
Другими словами: я хочу, чтобы зеленая метка укорачивалась до размера текста, а красная метка занимала всю оставшуюся ширину, чтобы они оба были рядом друг с другом, но когда имя пользователя слишком длинное, оно будет обрезать и по-прежнему показывать всю метку даты. Как бы я пошел по этому поводу?