如何制作多行,左对齐的UIAlertView?

时间:2012-07-20 00:36:55

标签: ios objective-c sdk uialertview

我有兴趣制作一个左对齐的UIAlertView,其中有几行像公告列表一样,如下所示:

  • 第1行
  • 第2行
  • 第3行

这是我到目前为止所拥有的:

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

我还想将警报视图的颜色更改为红色。

5 个答案:

答案 0 :(得分:31)

项目符号由unicode代码0x2022表示。我用它来使用“\ n”来处理新行:

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”用于显示新行
  • [NSString stringWithFormat:@"%C Line n", (unichar) 0x2022];代表项目符号
  • 对于对齐,请遍历警报视图的子视图,并确定哪些子视图是UILabel的子类。然后使用label.textAlignment = NSTextAlignmentLeft将标签的文本对齐方式更改为左对齐。
  • 执行全部后,您可以拨打[alert show];

答案 1 :(得分:4)

左对齐:

 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];

答案 2 :(得分:2)

确保使用\而不是正常的/.

alt + shift + 7(在我的键盘上)

\ n

应该这样做。 : - )

答案 3 :(得分:1)

您可以通过在邮件中插入\n来创建新行。例如:

@"line 1.\nline 2,\nline 3"

答案 4 :(得分:1)

对于新的行和文本对齐,更喜欢 @ qegal的答案,一个是完美的,但如果你想改变颜色或自定义警报视图,我有一个很棒的课程,而不是系统的警报查看只需检查this,这肯定有效。即使它也可以帮助您获得带有对齐和项目符号列表的多行消息。

如果您发现使用它有任何问题请求帮助,我一定会帮助您。

快乐编码:)