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.width260);
[self setClipsToBounds:YES];
[self setBackgroundColor:[UIColor whiteColor]];
toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(00closeView.size.width,44)];


toolBar.barStyle = UIBarStyleDefault;
UIBarButtonItem *titleButton = [[UIBarButtonItem alloc] initWithTitle:@"title" style:UIBarButtonItemStylePlain targetnil actionnil];


UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone targetself action@selector(done)];
UIBarButtonItem *leftButton  = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered targetself action@selector(docancel)];
UIBarButtonItem *fixedButton  = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace targetnil actionnil];
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(044768216)];
[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实现的功能:

[ 此帖被haoxue在2012-02-20 01:26重新编辑 ]

 

图片:pickerview.png
posted @ 2015-12-28 15:16  Bo-tree  阅读(110)  评论(0)    收藏  举报