【iOS】点击UIButton,弹出UIPickerView
2014-12-18 16:38
239 查看
不需要讲UIPickerView 作为 subview :
ViewController.m
ViewController.m
ViewController.m
ViewController.m
ViewController.h
做一个隐藏的 UITextField
ViewController.m#import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UITextField *pickerViewTextField; @end @implementation ViewController @synthesize pickerViewTextField = _pickerViewTextField; - (void)viewDidLoad { [super viewDidLoad]; // set the frame to zero self.pickerViewTextField = [[UITextField alloc] initWithFrame:CGRectZero]; [self.view addSubview:self.pickerViewTextField]; UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; pickerView.showsSelectionIndicator = YES; pickerView.dataSource = self; pickerView.delegate = self; // set change the inputView (default is keyboard) to UIPickerView self.pickerViewTextField.inputView = pickerView; // add a toolbar with Cancel & Done button UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; toolBar.barStyle = UIBarStyleBlackOpaque; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTouched:)]; UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTouched:)]; // the middle button is to make the Done button align to right [toolBar setItems:[NSArray arrayWithObjects:cancelButton, [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]]; self.pickerViewTextField.inputAccessoryView = toolBar; ... } |
监听 UIButton
ViewController.m... - (IBAction)someButtonTouched:(UIButton *)sender { [self.pickerViewTextField becomeFirstResponder]; } |
添加 bar buttons 方法
ViewController.m- (void)cancelTouched:(UIBarButtonItem *)sender { // hide the picker view [self.pickerViewTextField resignFirstResponder]; } - (void)doneTouched:(UIBarButtonItem *)sender { // hide the picker view [self.pickerViewTextField resignFirstResponder]; // perform some action } |
添加代理 UIPickerView
ViewController.m#pragma mark - UIPickerViewDataSource - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return [yourItems count]; } #pragma mark - UIPickerViewDelegate - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { NSString *item = [yourItems objectAtIndex:row]; return item; } - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { // perform some action } |
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> |
相关文章推荐
- UITextField点击之后弹出UIPickerView
- 点击UITextField弹出UIPickerView
- IOS学习之UIPickerView控件的简单使用
- IOS UIPickerView 用法
- iOS学习之UIPickerView控件的简单使用
- iOS学习之UIPickerView控件的简单使用
- IOS开发(3)之UIPickerView控件
- iOS开发编程之UIPickerView
- iOS学习之UIPickerView控件的简单使用
- iOS编程之UIPickerView
- iOS学习之UIPickerView控件的关联选择
- iOS基础 - UIDatePicker and UIPickerView and UITextField
- iOS学习之UIPickerView控件的关联选择
- IOS UIPickerView控件的关联选择
- iOS编程之UIPickerView
- [ios开发技巧之]UIPickerView的数据循环显示
- iOS学习之UIPickerView控件的简单使用
- IOS开发之旅(三)----UIPickerView
- IOS UI:弹出视图/弹出模态 presentViewController与presentModalViewController(增加IOS 6.0说明)
- iOS开发 UIPickerView的使用