2012-04-25 49 views
0

我需要显示一条警告消息,如 “您确定吗? [Y/N] 警告 - 这将重置分数“UIAlertView消息显示屏

对于这个我写下面的代码行:

UIAlertView *alert = [[UIAlertView alloc] init]; 
    [alert setMessage: NSLocalizedString(@"Are you sure?", nil)]; 
    [alert setTitle:@"WARNING - This will reset scores."]; 
    [alert addButtonWithTitle:@"Y"]; 
    [alert addButtonWithTitle:@"N"]; 
    [alert setDelegate:self]; 
    [alert show]; 
    [alert release]; 

通过这个我得到的第一个警告文本,然后将问题。纽扣。但我希望那个警告文本最后出现。 流程将像第一个问题(你确定?),然后两个按钮(Y/N),然后警告text.Please帮我做到这一点。我是这个结构。请帮忙。

+0

请按照下面给出了答案。 – 2012-04-25 16:50:50

回答

0

您目前有警告文字作为标题,所以会显示在信息上方。您setMessage更改为类似如下:

NSString *fullMessage = [NSString stringWithFormat:@"%@\n\nWARNING - This will reset scores.", NSLocalizedString(@"Are you sure?", nil)]; 
[alert setMessage: fullMessage]; 
+0

这只会改变警告文本行号,但我想显示的是,。第一个“你确定吗?”,然后是两个按钮(是/否),然后警告文本。 – hgpl 2012-04-25 06:30:53

+0

谢谢。请帮帮我。 – hgpl 2012-04-25 06:31:39

+1

啊,你不能用内置的UIAlertView来做这种布局。你将不得不为自己创建自定义视图(AFAIK)。 – keno 2012-04-25 06:32:42

1
UIAlertView *alert1= [[UIAlertView alloc]initWithTitle:@"Are you sure?" message:@"Warning-This will reset scores." delegate:self cancelButtonTitle:nil otherButtonTitles:@"Y",@"N", nil]; 
[alert1 show]; 
[alert1 release];  

只需使用简单的init方法!

1

您应该创建自定义AlertView。这里是我自定义的AlertView代码,你可以按照它来创建你自己需要的alertView。也许它会帮助你。

#import <UIKit/UIKit.h> 
#import "Utility.h" 

@interface AlertViewController : UIViewController <UIAlertViewDelegate> 
{ 
    UITextView   *_sharingTextView; 
} 
- (void) showAlertViewWithTextView; 
@end 

然后在.m文件

#import "AlertViewController.h" 

@implementation AlertViewController 

#define AlertViewIphoneInitFrame CGRectMake(0, 0, 300, 100) 
#define AlertViewIpadInitFrame CGRectMake(200, 50, 600, 200) 
#define TextViewIphoneFrame CGRectMake(20, 50, 260, 80) 
//#define TextViewIpadFrame CGRectMake(40, 100, 520, 160) 
#define AlertViewIphonePresentFrame CGRectMake(10, 100, 300, 200) 
#define AlertViewIpadPresentFrame CGRectMake(200, 200, 600, 400) 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - Custom AlertView 
//Custom AlertView 
- (void) showAlertViewWithTextView 
{ 
    UIAlertView *alert; 
    if ([[Utility getCurrentDevice] isEqualToString:@"iPad"]) 
    { 
     alert = [[UIAlertView alloc] initWithFrame:AlertViewIpadInitFrame]; 
     _sharingTextView = [[UITextView alloc] initWithFrame:TextViewIphoneFrame]; 
    } 
    else 
    { 
     alert = [[UIAlertView alloc] initWithFrame:AlertViewIphoneInitFrame]; 
     _sharingTextView = [[UITextView alloc] initWithFrame:TextViewIphoneFrame]; 
    } 
    alert.title = @"History Application"; 
    alert.message = nil; 
    alert.delegate = self; 
    [alert addButtonWithTitle:@"Return"]; 

    _sharingTextView.text = @"To share you events through tweets or facebook sharing you have to login, You can do so here or when trying to tweet or facebook share. You can also logout here"; 
    [_sharingTextView setFont:[UIFont fontWithName:@"Helvetica" size:18.0]]; 
    [_sharingTextView setEditable:NO]; 
    [alert addSubview:_sharingTextView]; 
    [alert show]; 
    [_sharingTextView release]; 
    [alert release]; 
} 

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
} 

// to set the alertView frame size. 
- (void)willPresentAlertView:(UIAlertView *)alertView 
{ 
    if ([[Utility getCurrentDevice] isEqualToString:@"iPad"]) 
    { 
     [alertView setFrame:AlertViewIpadPresentFrame]; 
    } 
    else 
    { 
     [alertView setFrame:AlertViewIphonePresentFrame]; 
    } 
    [alertView setFrame:AlertViewIphonePresentFrame]; 
    for (UIView *views in [alertView subviews]) 
    { 
     NSLog(@"%@",views); 
     if (views.tag == 1) 
     { 
      [views setFrame:CGRectMake(views.frame.origin.x+10, views.frame.origin.y+80, views.frame.size.width, views.frame.size.height)]; 
     } 
    } 
} 

#pragma mark - View lifecycle 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (void)dealloc { 
} 

@end