Ios 如何创建多行左对齐视图?
我感兴趣的是创建一个左对齐的UIAlertView,其中包含几行内容,如公告列表,如下所示: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
- 第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];