自定义frame,添加toolbar和pickerview

来源:互联网 发布:全球经济数据日历 编辑:程序博客网 时间:2024/04/29 23:20
自定义的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) IBOutletUIToolbar *toolBar;
@property (nonatomic, retain) IBOutletUIPickerView *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 Method
s
- (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 = [NSNotificationnotificationWithName:@"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 {

   [selectedStrrelease];
[pickerArrrelease];
   [toolBar release];
   [picker release];
   [super dealloc];
}
@end
pickerTestViewController.h文件
#import <UIKit/UIKit.h>
#import "pickerv.h"
#import <QuartzCore/QuartzCore.h>
@interface pickerTestViewController : UIViewController <UIActionSheetDelegate>{
      UIButton*btn;
      pickerv *chooseView;
}
@property (nonatomic, retain) IBOutletUIButton *btn;
@property (nonatomic,retain) pickerv *chooseView;
-(IBAction)addpicker;
-(IBAction)addview;
@end
pickerTestViewController.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 = [[customSheetalloc] 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
原创粉丝点击