Разрыв строки UILABEL в представлении коллекций IOS

Я работаю с прототипами элементов collectionview в раскадровке. В UIIMAGE Collection View я установил UIIMAGE и UILABEL в ячейку и UILABEL загрузку желаемых изображений с помощью viewWithTag, чтобы изменить изображение и метку по желанию.

Моя проблема в том, что я не могу установить свой ярлык таким образом, чтобы не создавать разрыв строки в словах. Погрешность слов не может дать ярлыку разрыв строки, чтобы обернуть слово и дать ярлык в одной строке.

Я попытался дать linebreak из раскадровки, а также программно, но я не могу скрыть мой ярлык и не могу дать прерывание строки после слова.

Мой код:

UILabel *label = (UILabel *)[cell viewWithTag:200];
label.text = [NSString stringWithFormat:@"%@",name];

Моя попытка:

label.numberOfLines = 0; // also tried 2 for next line
label.minimumScaleFactor = 0.5;
label.lineBreakMode = UILineBreakModeWordWrap;
label.lineBreakMode = NSLineBreakByWordWrapping;
1 ответ

Наиболее вероятной причиной отсутствия переноса слов является то, что UILabel не знает, что он не должен превышать заданную ширину.

Есть два способа выразить это:

  • установив свойство preferredMaxLayoutWidth на UILabel со значением, которое указывает, что ширина не должна превышать

  • установив правильные ограничения автоопределения - вы можете сделать это, указав ограничение ширины или указав ограничения смещения/вставки - это действительно зависит от того, на каком макете вы работаете, поскольку существует огромное количество возможных комбинаций.

Лучший способ здравомыслия - проверить, что нужно использовать метод preferredMaxLayoutWidth. Если он работает, попробуйте решить, хотите ли вы оставить это значение, или хотите, чтобы макет был более динамичным, если найти правильные ограничения автоотключения.

licensed under cc by-sa 3.0 with attribution.