选择单元格时显示 UIPickerView

Posted

技术标签:

【中文标题】选择单元格时显示 UIPickerView【英文标题】:Showing UIPickerView when cell is selected 【发布时间】:2017-05-27 16:07:34 【问题描述】:

对于我的应用,我使用带有动态原型单元格的 tableView 来实现应用内设置。在单元格内,我显示主标题和副标题。我想要实现的是,当用户单击其中一个单元格(代表特定设置)时,pickerView 将从屏幕底部滑动,显示用户可以选择的选项。我看过一些教程,其中这个 pickerView 显示在一个单元格中,例如在 ios 日历应用程序中,但我不需要它——如果它实际上以与将 pickerView 作为文本字段的 inputView 相同的方式从底部滑动,一切都会好起来的(例如 textField.inputView = pickerView)并单击文本字段。我很感激你能提供的任何帮助!提前致谢!

【问题讨论】:

【参考方案1】:
You can create a custom view xib in which you can have pickerView,when user click on cell just show the custom view with animation.

viewPicker = CGRectMake(0, 490, 320, 460);

For the animation from bottom to top add below:

[UIView animateWithDuration:0.5
                      delay:0.1
                    options: UIViewAnimationCurveEaseIn
                 animations:^
                     viewPicker.frame = CGRectMake(0, 0, 320, 460);
                  
                 completion:^(BOOL finished)
                 ];
[self.view addSubview:viewPicker];


For removing the view

[UIView animateWithDuration:1.5
                              delay:0.5
                            options: UIViewAnimationCurveEaseIn
                         animations:^
    viewPicker.frame = CGRectMake(0, 490, 320, 460);
                         
                         completion:^(BOOL finished)
                             if (finished)
                                 [viewPicker removeFromSuperview];
                         ];

【讨论】:

您好擎天柱,感谢您的快速回复!好东西我一定会试试的。我必须在 xib 文件中包含所有屏幕吗?我想我可以拥有我的经典故事板,只需将 pickerView 放入 xib 文件。但是,我尝试使用插座将选择器连接到控制器(用于情节提要中的 tableView),但我无法做到。 是的,您可以在所有视图控制器中使用 xib 文件。只需创建一个 xib 文件并加载 xib 文件,例如。 UIView *rootView = [[[NSBundle mainBundle] loadNibNamed:@"MyRootView" owner:self options:nil] objectAtIndex:0]; 好酷 - 我会试一试,然后告诉你进展如何。这对我来说都是新的,所以我想我需要一些时间才能完成这项工作 ?。非常感谢您的帮助!

以上是关于选择单元格时显示 UIPickerView的主要内容,如果未能解决你的问题,请参考以下文章

选择表格视图单元格时显示自定义 UIImageView

如何在选择 tableView 的行单元格(作为集合视图单元格)时显示视图控制器?

如何在选择集合视图单元格时显示不同的视图控制器

为啥我在自定义单元格中的复选框在快速选择和滚动时显示不同的行为?

WinForms:DataGridView - 当单元格被编辑时显示组合框

点击表格视图单元格时显示操作表