Как сделать несколько строк, выровненных по левому краю UIAlertView?

Я заинтересован в создании выровненного по левому краю UIAlertView с несколькими строками, такими как бюллетень, который будет выглядеть следующим образом:

line 1 line 2 line 3

Вот что я имею до сих пор:

alert = [[UIAlertView alloc] initWithTitle: @"How to use buttons"
                                   message: @"line 1. line 2, line 3 "
                                  delegate: nil
                         cancelButtonTitle: @"OK"
                         otherButtonTitles: nil];

Я также хочу изменить цвет представления предупреждений на красный.

Ответы на вопрос(5)

Убедитесь, что вы используете \, а не обычный /.

alt + shift + 7 (на моей клавиатуре)

\ п

Это должно сделать это. :-)

Вы можете создать новую строку, вставив\n в ваше сообщение. Например:

@"line 1.\nline 2,\nline 3"
Решение Вопроса

Пули представлены кодом Unicode 0x2022. Я заставил его работать так, используя & quot; \ n & quot; для новых строк:

UIAlertView *alert = [[UIAlertView alloc]
            initWithTitle: @"How to use buttons"
            message: [NSString stringWithFormat: @"%C line 1.\n %C line 2,\n %C line 3", (unichar) 0x2022, (unichar) 0x2022, (unichar) 0x2022];
            delegate: nil
            cancelButtonTitle:@"OK"
            otherButtonTitles:nil];

Это должно работать на пули.

Для выравнивания по левому краю сделайте это:

NSArray *subViewArray = alertView.subviews;
for(int x = 0; x < [subViewArray count]; x++){

    //If the current subview is a UILabel...
    if([[[subViewArray objectAtIndex:x] class] isSubclassOfClass:[UILabel class]]) {
        UILabel *label = [subViewArray objectAtIndex:x];
        label.textAlignment = NSTextAlignmentLeft;
    }
}

Итак, в заключение:

"\n" for displaying new lines. [NSString stringWithFormat:@"%C Line n", (unichar) 0x2022]; for the bullets. For the alignment, iterate through the subviews of the alert view and identify which subviews are subclasses of UILabel. Then change the text alignment of the labels to left alignment using label.textAlignment = NSTextAlignmentLeft. After you do all this, then you can call [alert show];.
 DavidNg20 июл. 2012 г., 06:00
привет, теперь центр выровнен Я хочу, чтобы выровнялся с бюллетенями. Если у вас есть более длинные тексты, вы увидите, что они выровнены по центру
 20 июл. 2012 г., 13:01
Получите один плюс от меня за ваш подробный ответ
 DavidNg20 июл. 2012 г., 02:43
спасибо, как насчет списка бюллетеней и выравнивания по левому краю?
 29 февр. 2016 г., 17:18
@pasawaya Код для выравнивания по левому краю не работает. Прежде всего, я предполагаю, что вы имели в виду NSArray * subViewArray = alert.subviews; потому что alertView.subviews не существует. Во-вторых, когда я размещаю этот код после инициализации оповещения, subViewArray имеет нулевые объекты. Я что-то пропустил?
 17 апр. 2013 г., 14:55
Кроме того, при выполнении маркеров необходимо ввести шестнадцатеричный код, чтобы Xcode не отображал предупреждение:[NSString stringWithFormat:@"%C Line n", (unichar) 0x2022]

Для новой строки и выравнивания текста предпочитают@qegal's ответьте, что это идеально, но если вы хотите изменить цвет или настроить представление предупреждений, я выбрал один отличный класс вместо представления предупреждений системы, просто проверьтеэтот это определенно работает. даже это также поможет вам получить многострочное сообщение с выравниванием и маркированным списком.

Если вы обнаружили какие-либо проблемы с его использованием, обратитесь за помощью, я обязательно помогу вам.

Удачного кодирования :)

для выравнивания влево:

 NSArray *subviewArray = alert.subviews;
for(int x = 0; x < [subviewArray count]; x++){

    if([[[subviewArray objectAtIndex:x] class] isSubclassOfClass:[UILabel class]]) {
        UILabel *label = [subviewArray objectAtIndex:x];
        label.textAlignment = UITextAlignmentLeft;
    }

Чтобы показать красный фон за предупреждением:

alert.backgroundColor=[UIColor redColor];
 20 июл. 2012 г., 13:10
Взято из кода qegals и скорректировано. @ DavidNg Могу ли я попросить вас принять его ответ и, возможно, плюс один человек, который помог вам здесь
 05 дек. 2016 г., 07:30
Теперь это не сработает. Любое другое решение?

Ваш ответ на вопрос