如何在 ios 中点击 UITextView 打开 Pickerview(dropdown)?
Posted
技术标签:
【中文标题】如何在 ios 中点击 UITextView 打开 Pickerview(dropdown)?【英文标题】:How to open a Pickerview(dropdown) on UITextView click in ios? 【发布时间】:2014-11-13 08:13:23 【问题描述】:我正在做一个项目,我想在其中添加一个用于选择类别的下拉列表。
请查看屏幕截图(目前仅限UITextField
)。
当用户点击 UITextField
时,我如何在屏幕底部显示 PickerView
我尝试了一些代码,但它们都不起作用
- (BOOL) textFieldShouldBeginEditing:(UITextView *)textView
pickrView.frame = CGRectMake(0, 400,self.view.frame.size.width,300);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.50];
[UIView setAnimationDelegate:self];
pickrView.frame = CGRectMake(0, 200, pickrView.frame.size.width, pickrView.frame.size.height);
[self.view addSubview:pickrView];
[UIView commitAnimations];
return NO;
【问题讨论】:
Pickerview 是否添加 [self.view addSubview:pickrView];在动画之前添加 【参考方案1】:单击文本字段时,您需要一个选择器视图而不是键盘。因此,您必须在创建文本字段时将 pickerview 分配给 UITextField 的“inputview”属性。
让我用一个例子来解释一下。
首先创建文本字段
- (void)viewDidLoad
[super viewDidLoad];
UITextField *cellTextField = [[UITextField alloc] init];
cellTextField.frame = CGRectMake(20, 12, 180, 20);
cellTextField.inputView = [self createPicker];
创建 PickerView
- (UIView *)createPicker
UIView *pickerView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 216)];
pickerView.backgroundColor = [UIColor colorWithRed:109.0/255.0 green:110.0/255.0 blue:120.0/255.0 alpha:1];
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 45, 300, 120)];
picker.delegate = self;
[pickerView addSubview:picker];
return pickerView;
通过这样做,您将在点击文本字段时获得pickerview。
【讨论】:
以上是关于如何在 ios 中点击 UITextView 打开 Pickerview(dropdown)?的主要内容,如果未能解决你的问题,请参考以下文章
在 UITextView 中点击 URL 时 iOS 应用程序崩溃 [重复]