我在弄清楚如何实现标准弹出选择器时遇到了很多麻烦。就像许多应用程序的注册屏幕一样,当用户选择生日文本字段时,我希望出现一个弹出选择器,以便用户可以选择他们的生日,单击完成,格式化日期将添加到文本字段。这似乎并不那么困难,但在 iOS 7 中似乎没有简单、清晰、标准的方法来做到这一点。
我在互联网上搜索过,看到有些人说使用模态,其他人说操作表,其他人说弹出窗口,还有人说使用单独的视图控制器。
谁能告诉我执行此操作的标准方法是什么或如何实现它的片段?
我认为“标准”方式是将选择器设置为文本字段的 inputView 。
UIPickerView *picker = [[UIPickerView alloc] init];
self.textField.inputView = picker;
它会从底部弹出,就像您触摸文本字段时键盘所做的那样。
以下是如何使用选择器作为输入视图的简单实现:
@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];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)