Chu*_*lly 32 modal-dialog datepicker popup picker ios
我在搞清楚如何实现标准弹出选择器时遇到了很多麻烦.像许多应用程序的注册屏幕一样,当用户选择生日文本字段时,我想要一个弹出选择器出现,以便用户可以选择他们的生日,点击完成,格式化的日期将被添加到文本字段.这看起来似乎不应该那么难,但似乎在iOS 7中没有简单,清晰,标准的方法.
我搜索了互联网并看到一些说使用模态,其他人说操作表,其他人说弹出窗口,还有人说一个单独的视图控制器.
任何人都可以告诉我这样做的标准方法是什么,或者是如何实现它的片段?
rde*_*mar 71
我认为"标准"方式是将选择器设置为文本字段的inputView.
UIPickerView *picker = [[UIPickerView alloc] init];
self.textField.inputView = picker;
Run Code Online (Sandbox Code Playgroud)
它会弹出底部,就像键盘在文本字段中触摸时一样.
这是一个如何使用选择器作为输入视图的简单实现:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *tf;
@property (strong,nonatomic) NSArray *theData;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIPickerView *picker = [[UIPickerView alloc] init];
picker.dataSource = self;
picker.delegate = self;
self.tf.inputView = picker;
self.theData = @[@"one",@"two",@"three",@"four"];
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return self.theData.count;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return self.theData[row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.tf.text = self.theData[row];
[self.tf resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34856 次 |
| 最近记录: |