Используйте \n
как вы используете в вашей строке.
Установите для numberOfLines значение 0, чтобы разрешить любое количество строк.
label.numberOfLines = 0;
Обновите рамку метки, чтобы она соответствовала размеру текста, используя sizeWithFont:
. Если вы этого не сделаете, ваш текст будет отцентрирован по вертикали или обрезан.
UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
Обновление: замена устаревших
sizeWithFont:constrainedToSize:lineBreakMode:
Ссылка, замена устаревшего размера с шрифтом: в iOS 7?
CGSize labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
UILabel
не имеет свойстваorigin
ниsize
на iOS? Вероятно, должно бытьlabel.frame.origin.x
и т. Д.Используйте option-return при вводе в маленькое поле в Интерфейсном Разработчике, чтобы вставить перевод строки (\ n). В атрибутах Label Интерфейсного Разработчика установите # Lines = 0.
Выберите метку и затем измените свойство Lines на 0, как на картинке выше, а затем используйте \ n в вашей строке для разрыва строки.
источник
Если вы читаете строку из файла XML, разрыв строки
\n
в этой строке не будет работать вUILabel
тексте.\n
Не разбирается с разрывом строки.Вот небольшая хитрость, чтобы решить эту проблему:
Таким образом, вы должны заменить непарсированную
\n
часть в вашей строке анализируемой\n
в жестком кодеNSString
.Вот мои другие настройки метки:
Наиболее важным является набор
numberOfLines
для0
(= неограниченное число строк в этикетке).Не знаете, почему Apple решила не анализировать
\n
строки, прочитанные из XML?Надеюсь это поможет.
источник
\n
при получении строк с Parse.com (я думаю, это также случится при получении строк из других API)В конструкторе интерфейса вы можете использовать Ctrl+ Enterдля вставки
/n
в нужную вам позицию. Таким способом можно реализовать следующую ситуациюааа
ааааааа
источник
Вы должны установить
numberOfLines
свойство наUILabel
. По умолчанию установлено значение 1 , если вы установите значение 0 , все ограничения будут удалены.источник
Важно отметить, что это
\n
(обратная косая черта), а не/n
.источник
В Swift 2.2> iOS 8
Я установил Lines = 0 на раскадровке под Атрибутом Инспектора и связал выход с ссылками с меткой. Затем используйте в контроллере, как это:
источник
Просто сделай это так
источник
// НЕ забудьте установить numberOfLines на ноль
источник
В Xcode 6 вы можете просто использовать \ n даже внутри строки при использовании переноса слов. Это сработает. Так, например:
источник
Если вы используете a,
UILabel
вы должны помнить, что значение по умолчанию равно 1 строке, поэтому не имеет значения, сколько разрывов вы добавляете (\n
или\r
), вам нужно убедиться, что для него установлено более одной строки, чтобы его можно было добавлять больше строк.Одной из альтернатив является использование,
UITextView
которое действительно предназначено для мультилиней.Вы можете легко добиться этого в разделе атрибутов XCode UILabel, см. Скриншот:
источник
Для тех из вас, кто хочет простое решение, выполните следующие действия в поле ввода Текстовая метка:
Убедитесь, что ваши номера строки установлены на 0.
Alt + Enter
(Alt - ваш ключ выбора)
Ура!
источник
Просто используя
label.numberOfLines = 0;
источник
В моем случае также \ n не работал, я исправил проблему, сохранив число строк равным 0, скопировал и вставил текст с новой строкой, например вместо Hello \ n World, который я вставил
в конструкторе интерфейсов.
источник
В xCode 11, Swift 5
\n
работает нормально, попробуйте следующий код:источник
источник
Для тех, у кого могут возникнуть проблемы
sizeWithFont:constrainedToSize:lineBreakMode:
или кто-либо переключается на ios8 (этот метод устарел с ios7), я изменил свой рост, используяsizeToFit
вместо этого.источник
источник
Мне кажется неправильным изменять размеры рамки надписи, особенно при использовании автоматического размещения. Использование метода appendFormat кажется более подходящим. Вот мой пример:
источник
Если вы установите свойства UILable с Plain на Attributed ... UILabel будет хранить многострочный текст независимо от того, сколько параграфов и высоты и ширины UILabel установлено в соответствии с областью экрана, в которой вы хотите отобразить текст.
источник
Я столкнулся с той же проблемой, и вот, как я решил проблему. Надеюсь, это будет полезно для кого-то.
// Swift 2
// Objective-C
// C # (Xamarin.iOS)
источник