Подтвердить что ты не робот

Несколько строк в UIButton

Привет, у меня есть проблема для установки нескольких строк на мою кнопку, которая объявляется следующим образом:

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.titleLabel.font            = [UIFont systemFontOfSize: 12];
button.titleLabel.lineBreakMode   = UILineBreakModeWordWrap;
button.titleLabel.numberOfLines   = 0;
button.titleLabel.shadowOffset    = CGSizeMake (1.0, 0.0);

[button addTarget:self 
           action:@selector(myButtonClick) 
 forControlEvents:UIControlEventTouchDown];

button.frame = CGRectMake(0.0, 100.0, 317.0, 100.0);
[button setTitle:string forState:UIControlStateNormal]; 
button.titleLabel.font            = [UIFont systemFontOfSize: 12];
button.titleLabel.text = @"ahoj";

NSMutableString *ObratString = [[NSMutableString alloc] initWithString:button.titleLabel.text];

[ObratString appendString:@"\n"];
[ObratString appendString:@"caw"];
[ObratString appendString:@"\n"];
[ObratString appendString:@"helllo"];
button.titleLabel.text = ObratString;
[ObratString release];
[self.view addSubview:button];

Но в итоге я просто вижу первую строку. Есть ли способ заставить его работать?

4b9b3361

Ответ 1

UIButton отображает текст с содержащимся UILabel. По умолчанию для содержащейся метки отображается только одна строка текста. Эта метка доступна через свойство titleLabel, и все, что вы можете сделать с нормальной меткой, можно сделать с ней.

Например, для создания нескольких строк, разбитых словами:

 myButton.titleLabel. numberOfLines = 0; // Dynamic number of lines
 myButton.titleLabel.lineBreakMode = UILineBreakModeWordWrap;

Ответ 2

Быстрая версия для проверенного ответа:

    myButton.titleLabel?.numberOfLines = 0
    myButton.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping