我有兴趣制作一个左对齐的UIAlertView,其中有几行像公告列表一样,如下所示:
这是我到目前为止所拥有的:
alert = [[UIAlertView alloc] initWithTitle: @"How to use buttons"
message: @"line 1. line 2, line 3 "
delegate: nil
cancelButtonTitle: @"OK"
otherButtonTitles: nil];
我还想将警报视图的颜色更改为红色。
答案 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;
}
}
总结如下:
[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,这肯定有效。即使它也可以帮助您获得带有对齐和项目符号列表的多行消息。
如果您发现使用它有任何问题请求帮助,我一定会帮助您。
快乐编码:)