问题
I am interested in making a left-aligned UIAlertView with several lines like a bulletin list that would look like the following:
- line 1
- line 2
- line 3
Here's what I have so far:
alert = [[UIAlertView alloc] initWithTitle: @"How to use buttons"
message: @"line 1. line 2, line 3 "
delegate: nil
cancelButtonTitle: @"OK"
otherButtonTitles: nil];
I also want to change the color of the alert view to red.
回答1:
Bullets are represented by the unicode code 0x2022. I got it to work like this using "\n" for new lines:
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];
That should work for the bullets.
For the left alignment, do this:
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;
}
}
So in summary:
- "\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 usinglabel.textAlignment = NSTextAlignmentLeft. - After you do all this, then you can call
[alert show];.
回答2:
to align left:
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;
}
To show a red background behind alert view:
alert.backgroundColor=[UIColor redColor];
回答3:
Make sure you use the \ and not the normal /.
alt + shift + 7 (on my Keyboard)
\n
That should do it. :-)
回答4:
You can create a new line by inserting \n into your message. For example:
@"line 1.\nline 2,\nline 3"
回答5:
For the new line and text alignment prefer the @qegal's answer that one is perfect but if you like to change the color or customize the alert view I got one great class to use instead of system's alert view just check this out, this will definitely works. even it will also helps you to get multi-lined message with alignment and bulleted list.
If you found any problem with using it ask for help, I will surely help you out.
Happy Coding :)
来源:https://stackoverflow.com/questions/11571315/how-to-make-a-multiple-line-left-aligned-uialertview