프로그래밍/iOS
커스텀 Action Sheet 사용하기
백룡화검
2012. 2. 4. 23:10
CustomActionSheet类继承UIActionSheet,具体的实现如下所示:
(1)CustomActionSheet.h头文件:
#import <UIKit/UIKit.h> @interface CustomActionSheet : UIActionSheet { UIToolbar* toolBar; UIView* view; } @property(nonatomic,retain)UIView* view; @property(nonatomic,retain)UIToolbar* toolBar; -(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title; @end
(2)CustomActionSheet.m实现文件:
#import "CustomActionSheet.h" @implementation CustomActionSheet @synthesize view; @synthesize toolBar; -(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title{ self = [super init]; if (self) { int theight = height - 40; int btnnum = theight/50; for(int i=0; i<btnnum; i++){ [self addButtonWithTitle:@" "]; } toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; toolBar.barStyle = UIBarStyleBlackOpaque; UIBarButtonItem *titleButton = [[UIBarButtonItem alloc] initWithTitle:title style:UIBarButtonItemStylePlain target:nil action:nil]; UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done)]; UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(docancel)]; UIBarButtonItem *fixedButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; NSArray *array = [[NSArray alloc] initWithObjects:leftButton,fixedButton,titleButton,fixedButton,rightButton,nil]; [toolBar setItems: array]; [titleButton release]; [leftButton release]; [rightButton release]; [fixedButton release]; [array release]; [self addSubview:toolBar]; view = [[UIView alloc] initWithFrame:CGRectMake(0, 44, 320, height-44)]; view.backgroundColor = [UIColor groupTableViewBackgroundColor]; [self addSubview:view]; } return self; } -(void)done{ [self dismissWithClickedButtonIndex:0 animated:YES]; } -(void)docancel{ [self dismissWithClickedButtonIndex:0 animated:YES]; } -(void)dealloc{ [view release]; [super dealloc]; } @end
二、利用自定义的CustomActionSheet类显示提示框。
-(IBAction)doClick:(id)sender{ CustomActionSheet* sheet = [[CustomActionSheet alloc] initWithHeight:284.0f WithSheetTitle:@"自定义ActionSheet"]; UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0,50, 320, 50)]; label.text = @"这里是要自定义放的控制"; label.backgroundColor = [UIColor clearColor]; label.textAlignment = UITextAlignmentCenter; [sheet.view addSubview:label]; [sheet showInView:self.view]; [sheet release]; }
演示: