Breakline в названии UIButton - PullRequest
       24

Breakline в названии UIButton

2 голосов
/ 15 февраля 2010

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

NSString *sitz = map.kordinate.herkunft;
NSString *strasse = map.kordinate.strasse;
NSString *strasseMitKomma = [strasse stringByAppendingString:@","];
NSString *fertigesSitzFeld = [strasseMitKomma stringByAppendingString:sitz];
UIButton *firmensitz = [UIButton buttonWithType:UIButtonTypeRoundedRect];

граница должна быть между strasseMitKomma и sitz ??

спасибо за помощь

Ответы [ 2 ]

9 голосов
/ 15 февраля 2010

Вы должны настроить UILabel внутри UIButton для поддержки нескольких строк.
Вы можете сделать это так:

 NSString *address;

    address = [NSString stringWithFormat:@"%@,\n%@", @"street name", @"city name"];   // Note the \n after the comma, that will give you a new line

    addressButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];


    [addressButton.titleLabel setLineBreakMode:UILineBreakModeWordWrap];    // Enabling multiple line in a UIButton by setting the line break mode
    [addressButton.titleLabel setTextAlignment:UITextAlignmentCenter];

    [addressButton setTitle:address forState:UIControlStateNormal];

Кстати, вам не нужно так много переменных NSString.Вы могли бы поместить результат новой строки в переменную NSString, которую вы уже использовали.
Посмотрите на метод stringWithFormat в первой строке моего ответа.Прочитайте документацию NSString для более подробной информации.

0 голосов
/ 02 августа 2017

Работает на iOS9.

[_butNoReceipt.titleLabel setLineBreakMode:NSLineBreakByCharWrapping];
[_butNoReceipt.titleLabel setTextAlignment:NSTextAlignmentCenter];
[_butNoReceipt setTitle:btnTest forState:UIControlStateNormal];
...