Ios 如何创建多行左对齐视图?

Ios 如何创建多行左对齐视图?,ios,objective-c,sdk,uialertview,Ios,Objective C,Sdk,Uialertview,我感兴趣的是创建一个左对齐的UIAlertView,其中包含几行内容,如公告列表,如下所示: 第1行 第2行 第3行 以下是我目前掌握的情况: alert = [[UIAlertView alloc] initWithTitle: @"How to use buttons" message: @"line 1. line 2, line 3 " deleg

我感兴趣的是创建一个左对齐的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];

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

项目符号由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;
    }
}
NSArray*subViewArray=alertView.subviews;
对于(int x=0;x<[子视图数组计数];x++){
//如果当前子视图是UILabel。。。
if([[[subViewArray objectAtIndex:x]类]IsubClassOfClass:[UILabel类]]{
UILabel*label=[subViewArray objectAtIndex:x];
label.textAlignment=NSTextAlignmentLeft;
}
}
总而言之:

  • “\n”用于显示新行
  • [NSString stringWithFormat:@“%C行n”(unichar)0x2022]项目符号编码>
  • 对于对齐,遍历警报视图的子视图,并确定哪些子视图是
    UILabel
    的子类。然后使用
    label.textAlignment=NSTextAlignmentLeft
    将标签的文本对齐方式更改为左对齐
  • 完成所有操作后,您可以调用
    [alert show]

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

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

对于新的行和文本对齐方式,我更喜欢@qegal的答案,这是一个完美的答案,但是如果你想更改颜色或自定义警报视图,我有一个很好的类来使用,而不是系统的警报视图,只要检查一下,这肯定会起作用。即使这样,它也可以帮助您获得对齐和项目符号列表的多行消息

如果你发现使用它有任何问题,请寻求帮助,我一定会帮你解决

快乐编码:)

要左对齐:

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

确保使用\而不是普通/

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

\n


应该可以了。:-)

您好,它现在是中心对齐的。我要用公告左对齐。如果你有更长的文本,你会看到它们是中心对齐的。我会给你一个加号作为你的详细答案。不,我几乎所有的问题都是高质量的,但现在我得到了这样一句话:“对不起,我们不再接受这个帐户的问题。请参阅了解更多信息。”你对此有经验吗?还有,在做子弹时,您需要键入十六进制代码以防止Xcode显示警告:
[NSString stringWithFormat:@“%C Line n”(unichar)0x2022]
@pasawaya左对齐的代码似乎不起作用。首先,我想你指的是NSArray*subViewArray=alert.subviews;因为alertView.subviews不存在。其次,当我在警报初始化之后放置此代码时,子ViewArray没有对象。我遗漏了什么吗?摘自qegals代码并进行了调整。@大卫,我能建议你接受他的回答,也许再加上在这里帮助过你的人
alert.backgroundColor=[UIColor redColor];