iphone开发-自定义frame,添加toolbar和pickerview
自定义的frame pickerv.h文件
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface pickerv : UIView <UIPickerViewDelegate>{
UIToolbar *toolBar;
UIPickerView *picker;
NSArray *pickerArr;
CGRect closeView;
CGRect openView;
BOOL isOpen;
NSString *selectedStr;
}
@property (nonatomic, retain) IBOutlet UIToolbar *toolBar;
@property (nonatomic, retain) IBOutlet UIPickerView *picker;
@property (nonatomic, retain) NSArray *pickerArr;
@property (nonatomic, retain) NSString *selectedStr;
@property BOOL isOpen;
-(void)viewOpen;
-(void)viewClose;
-(void)cancle;
-(void)done;
@end
pickerv.m文件
#import "pickerv.h"
@implementation pickerv
@synthesize toolBar,picker,pickerArr,isOpen,selectedStr;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
isOpen = NO;
closeView = self.frame;
openView = CGRectMake(closeView.origin.x, closeView.origin.y-260,closeView.size.width, 260);
[self setClipsToBounds:YES];
[self setBackgroundColor:[UIColor whiteColor]];
toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, closeView.size.width,44)];
toolBar.barStyle = UIBarStyleDefault;
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];
selectedStr = [[NSString alloc] init];
pickerArr = [[NSArray alloc] initWithObjects:@"10",@"20",@"30",@"40",nil];
picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 44, 768, 216)];
[picker setBackgroundColor:[UIColor grayColor]];
picker.showsSelectionIndicator = YES;
picker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
picker.delegate = self;[self addSubview:picker]; } return self;}-(void)viewOpen{//[tblView reloadData];isOpen = YES;[UIView beginAnimations:nil context:nil];[UIView setAnimationCurve:UIViewAnimationCurveLinear];//[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self cache:NO];[UIView setAnimationDuration:0.4];[self setFrame:openView];[UIView commitAnimations];}-(void)viewClose{isOpen = NO;[UIView beginAnimations:nil context:nil];[UIView setAnimationCurve:UIViewAnimationCurveLinear];[UIView setAnimationDuration:0.4];[self setFrame:closeView];[UIView commitAnimations];}#pragma mark -#pragma mark Picker Data Source Methods- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 1;}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{return 4;}#pragma mark Picker Delegate Methods- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{return [self.pickerArr objectAtIndex:row];}- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{//[self dismissWithClickedButtonIndex:row animated:YES]; //[self setNeedsDisplay];//selectedPicker = [pickerArr objectAtIndex:row];//NSLog(@"select:%@",selectedPicker);selectedStr = [pickerArr objectAtIndex:row];NSLog(@"str:%@",selectedStr);NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];NSNotification *notification = [NSNotification notificationWithName:@"refresh"object:nil];[notificationCenter postNotification:notification];}- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{return 768;}- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{return 40;}-(void)done{isOpen = NO;[UIView beginAnimations:nil context:nil];[UIView setAnimationCurve:UIViewAnimationCurveLinear];[UIView setAnimationDuration:0.4];[self setFrame:closeView];[UIView commitAnimations];//[self dismissWithClickedButtonIndex:0 animated:YES];}- (void)cancle{[self dismissWithClickedButtonIndex:0 animated:YES];}- (void)dealloc { [selectedStr release]; [pickerArr release]; [toolBar release]; [picker release]; [super dealloc];}@endpickerTestViewController.h文件#import <UIKit/UIKit.h>#import "pickerv.h"#import <QuartzCore/QuartzCore.h>@interface pickerTestViewController : UIViewController <UIActionSheetDelegate>{ UIButton *btn; pickerv *chooseView;}@property (nonatomic, retain) IBOutlet UIButton *btn;@property (nonatomic, retain) pickerv *chooseView;-(IBAction)addpicker;-(IBAction)addview;@endpickerTestViewController.m文件#import "pickerTestViewController.h"#import "customSheet.h"@implementation pickerTestViewController@synthesize btn,chooseView;- (void)viewDidLoad { //[super viewDidLoad];//UIActionSheet
*actionsheet =[[UIActionSheet alloc] initWithTitle:@"" delegate:self
cancelButtonTitle:@"取消" destructiveButtonTitle:nil // otherButtonTitles:@"选择此用户",@"删除此用户",nil];//[actionsheet showInView:self.view];//[actionsheet showFromRect:self.view.bounds inView:self.view animated:YES];[self.view setBackgroundColor:[UIColor grayColor]];chooseView = [[pickerv alloc] initWithFrame:CGRectMake(0, 1004, 768, 0)];[self.view addSubview:chooseView];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refresh)name:@"refresh" object:nil];}- (void)refresh{ btn.titleLabel.text = chooseView.selectedStr;}-(IBAction)addpicker{//customSheet *sheet = [[customSheet alloc] initWithHeight:500];//CGRect sheetRect = CGRectMake(0, 0, 768, 500) ;//[sheet showFromRect:self.view.bounds inView:self.view animated:YES]; customSheet* sheet = [[customSheet alloc] initWithHeight:284.0fWithSheetTitle:@"MyActionSheet"];//[sheet showInView:self.view];UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0,50, 320, 50)];label.text = @"在这你想干啥就干啥";label.backgroundColor = [UIColor clearColor];label.textAlignment = UITextAlignmentCenter;[sheet.view addSubview:label];[sheet showFromRect:self.btn.bounds inView:self.view animated:YES];[sheet release];}-(IBAction)addview{[chooseView viewOpen];//btn.titleLabel.text = chooseView.selectedStr;}// Override to allow orientations other than the default portrait orientation.- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES;}- (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.}- (void)viewDidUnload {// Release any retained subviews of the main view.// e.g. self.myOutlet = nil;}- (void)dealloc { [chooseView release]; [btn release]; [super dealloc];}@end实现的功能:

浙公网安备 33010602011771号