0

「よろしいですか?[Y/N] 警告 - これによりスコアがリセットされます。」</p>

このために、次のコード行を書いています。

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

これにより、最初に警告テキストが表示され、次に質問とボタンが表示されます。しかし、私はその警告テキストが最後に表示されることを望んでいます。フローは、最初の質問 (よろしいですか?)、次に 2 つのボタン (Y/N)、警告テキストのようになります。これを行うのを手伝ってください。私はこれに構造体です。助けてください。

4

3 に答える 3

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メソッドを使用するだけ!!

于 2012-04-25T06:47:13.203 に答える
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
于 2012-04-25T11:56:50.343 に答える
0

現在、タイトルとして警告テキストがあるため、メッセージの上に表示されます。setMessage を以下のように変更します。

NSString *fullMessage = [NSString stringWithFormat:@"%@\n\nWARNING - This will reset scores.", NSLocalizedString(@"Are you sure?", nil)];
[alert setMessage: fullMessage];
于 2012-04-25T06:23:09.300 に答える