iOS開發-ios7 UIAlertView自定義
阿新 • • 發佈:2018-12-21
並且新增協議。
<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方法都能響應我們的選擇。
具體選擇哪種方式因人而異。
學習的路上,與君共勉。