1. 程式人生 > >iOS開發-ios7 UIAlertView自定義

iOS開發-ios7 UIAlertView自定義

並且新增協議。

<CustomIOS7AlertViewDelegate>

比如我的.h檔案

#import <UIKit/UIKit.h>#import "CustomIOS7AlertView.h"@interface ViewController : UIViewController<CustomIOS7AlertViewDelegate>@end

3.新增UIAlertView

先給出.m檔案。

#import "ViewController.h"@interface ViewController ()@[email protected] ViewController- (void
)
viewDidLoad
{    [super viewDidLoad];    // Just a subtle background color    [self.view setBackgroundColor:[UIColor colorWithRed:0.8f green:0.8f blue:0.8f alpha:1.0f]];    // A simple button to launch the demo    UIButton *launchDialog = [UIButton buttonWithType:UIButtonTypeCustom];    [launchDialog setFrame:CGRectMake(10
, 30, self.view.bounds.size.width-20, 50)];    [launchDialog addTarget:self action:@selector(launchDialog:) forControlEvents:UIControlEventTouchDown];    [launchDialog setTitle:@"Launch Dialog" forState:UIControlStateNormal];    [launchDialog setBackgroundColor:[UIColor whiteColor]];    [launchDialog setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    [launchDialog.layer setBorderWidth:0
];    [launchDialog.layer setCornerRadius:5];    [self.view addSubview:launchDialog];}- (IBAction)launchDialog:(id)sender{    // Here we need to pass a full frame    CustomIOS7AlertView *alertView = [[CustomIOS7AlertView alloc] init];    // Add some custom content to the alert view    [alertView setContainerView:[self createDemoView]];    // Modify the parameters    [alertView setButtonTitles:[NSMutableArray arrayWithObjects:@"Close1", @"Close2", @"Close3", nil]];    [alertView setDelegate:self];        // You may use a Block, rather than a delegate.    [alertView setOnButtonTouchUpInside:^(CustomIOS7AlertView *alertView, int buttonIndex) {        NSLog(@"Block: Button at position %d is clicked on alertView %d.", buttonIndex, [alertView tag]);        [alertView close];    }];        [alertView setUseMotionEffects:true];    // And launch the dialog    [alertView show];}- (void)customIOS7dialogButtonTouchUpInside: (CustomIOS7AlertView *)alertView clickedButtonAtIndex: (NSInteger)buttonIndex{    NSLog(@"Delegate: Button at position %d is clicked on alertView %d.", buttonIndex, [alertView tag]);    [alertView close];}- (UIView *)createDemoView{    UIView *demoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 290, 200)];    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 270, 180)];    [imageView setImage:[UIImage imageNamed:@"demo"]];    [demoView addSubview:imageView];    return demoView;}@end


這裡,通過一個button繫結彈出UIAlertView。  當然,你也可以在其他條件觸發launchDialog方法。

然後UIAlertView載入自己定義的檢視(createDemoView)。

另外,塊內的setOnButtonTouchUpInside 和 單獨的delegate   customIOS7dialogButtonTouchUpInside方法都能響應我們的選擇。

具體選擇哪種方式因人而異。

學習的路上,與君共勉。