ios: текст неправильно переносится на iPhone 5S и более ранних версиях (4 дюйма и меньше)
У меня есть этикетка, которая должна обернуться. Есть 4 ограничения (верх / низ и ведущий / трейлинг - других ограничений нет). Этикетка правильно оборачивается на iPhone 6, то есть на 4,7-дюймовом экране, и на iPhone 6 Plus, то есть на 5,5-дюймовом экране, но обрезается по правому краю на устройствах с экраном 4 дюйма или меньше.
Как будто он думает, что доступная ширина больше, чем фактическая ширина устройства. есть идеи? (извините, я не могу разместить изображение в строке, потому что это требует не менее 10 повторений)
FWIW: Вот ограничения на метку (я пишу их в псевдокоде, потому что они установлены в IB).
label.top = top margin
label.bottom = bottom margin
label.leading = leading margin
label.trailing = trailing margin
2 ответа
Я выяснил, в чем проблема, это label
был в клетке типа TextCell
и вот что я делал в TextCell
"s layoutSubviews
метод:
override func layoutSubviews() {
super.layoutSubviews()
// ... snip ...
self.text.preferredMaxLayoutWidth = 375 // This is the offending line
}
+ Изменить preferredMaxLayoutWidth
в здравом уме (например, CGRectGetWidth(self.label.frame)
) починил это.
Обратите внимание, что вышеизложенное является упрощением проблемы, в том случае, если у вас есть проблемы с самоклейкой этикеткой в Cocoa Touch, всегда проверяйте, preferredMaxLayoutWidth
устанавливается на правильное значение
Вот связанный вопрос (указал мне в правильном направлении): UILabel иногда неправильно переносит текст (автоматическая разметка)
В вашей main_storyboard перейдите на нижнюю панель и нажмите Инспектор компактных размеров (или как там его называют) и выберите этот
попробуй убрать там все ограничения и добавить их снова