- iOS 教程
- iOS 简介
- iOS环境搭建
- Objective-C 简介
- 创建第一款iPhone应用程序
- iOS操作(action)和输出口(Outlet)
- iOS - 委托(Delegates)
- 什么是UI元素?
- IOS加速度传感器(accelerometer)
- IOS通用应用程序
- IOS相机管理
- IOS定位操作
- IOS SQLite数据库
- IOS发送电子邮件
- IOS音频和视频(Audio & Video)
- IOS文件处理
- IOS地图开发
- IOS应用内购买
- IOS iAD整合
- IOS GameKit
- IOS 故事板(Storyboards)
- IOS自动布局
- IOS-Twitter和Facebook
- IOS内存管理
- IOS应用程序调试
选择器的使用
选择器的使用
选择器是一个可滚动视图,用于选取列表项中的值。
重要的属性
- delegate
- dataSource
重要的方法
- (void)reloadAllComponents
- (void)reloadComponent:(NSInteger)component
- (NSInteger)selectedRowInComponent:(NSInteger)component
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
修改 ViewController.h
我们将添加一个文本字段、选择器视图和一个数组。
我们将采用UITextFieldDelegate、UIPickerViewDataSource、UIPickerViewDelegate的协议。ViewController.h文件代码如下所示:
#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate> { UITextField *myTextField; UIPickerView *myPickerView; NSArray *pickerArray; } @end
添加自定义方法 addPickerView
-(void)addPickerView{ pickerArray = [[NSArray alloc]initWithObjects:@"Chess", @"Cricket",@"Football",@"Tennis",@"Volleyball", nil]; myTextField = [[UITextField alloc]initWithFrame: CGRectMake(10, 100, 300, 30)]; myTextField.borderStyle = UITextBorderStyleRoundedRect; myTextField.textAlignment = UITextAlignmentCenter; myTextField.delegate = self; [self.view addSubview:myTextField]; [myTextField setPlaceholder:@"Pick a Sport"]; myPickerView = [[UIPickerView alloc]init]; myPickerView.dataSource = self; myPickerView.delegate = self; myPickerView.showsSelectionIndicator = YES; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done:)]; UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame: CGRectMake(0, self.view.frame.size.height- myPickerView.frame.size.height-50, 320, 50)]; [toolBar setBarStyle:UIBarStyleBlackOpaque]; NSArray *toolbarItems = [NSArray arrayWithObjects: doneButton, nil]; [toolBar setItems:toolbarItems]; myTextField.inputView = myPickerView; myTextField.inputAccessoryView = toolBar; }
执行委托,如下所示:
#pragma mark - Text field delegates -(void)textFieldDidBeginEditing:(UITextField *)textField{ if ([textField.text isEqualToString:@""]) { [self dateChanged:nil]; } } #pragma mark - Picker View Data source -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 1; } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ return [pickerArray count]; } #pragma mark- Picker View Delegate -(void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component{ [myTextField setText:[pickerArray objectAtIndex:row]]; } - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow: (NSInteger)row forComponent:(NSInteger)component{ return [pickerArray objectAtIndex:row]; }
在ViewController.m修改viewDidLoad,如下所示:
(void)viewDidLoad { [super viewDidLoad]; [self addPickerView]; }
输出
现在当我们运行该应用程序我们会看到下面的输出:
文本选择器视图如下所示,我们可以选取我们需要的值:
上一篇:IOS视图切换的使用
下一篇:IOS开关的使用
关注微信小程序
扫描二维码
程序员编程王