iOS 5:如何使用UIPickerView创建UIAlertView?(iPhone/iPad)



我需要一种允许用户从列表中选择选项的方法,我正在考虑在UIAlertView中使用UIPickerView。然而,我想知道是否:

  1. iOS 5中,可以很容易地将UIPickerView放入UIAlertView中(如果是这样,苹果会反对吗?应用程序会被拒绝吗?)
  2. 有更好的方法吗?(如果是,怎么办?)

如有任何帮助或建议,我们将不胜感激!

如果要在屏幕上选择要放入文本字段的值,只需让选择器查看文本字段的inputView即可。然后它会像键盘一样为你设置动画。

您也可能希望添加一个工具栏作为inputAccessoryView,上面有完成、下一步等按钮。

使选取器视图成为输入视图非常简单。在viewDidLoad方法中,创建picket视图,将其数据源和委托设置为正常,然后将其分配给文本字段的输入视图属性:

myTextField.inputView = myPicker;

在选取器视图委派方法中,当选取器的选择发生更改时,可以使用选定的值更新文本字段。在文本字段委派方法中,您可以确保尖桩在出现之前选择了正确的值(willBeginEditing?(猜测,不是在mac ATM上))。

附件视图可以只是一个UIToolbar,其中包含一个done项,该项告诉文本字段放弃第一响应者状态。再次设置并在viewDidLoad中分配它。

添加UIPickerView作为UIAlertView的子视图当然是可能的,我怀疑苹果会因此拒绝你的应用程序,但我认为这会导致糟糕的UI。为什么不创建一个新的UIViewController子类来包含UIPickerView并以模式呈现它呢?这是一种更常见的交互模式。

如果您有2-3个选择,请将几个按钮放在其他按钮标题之后的UIAlertView中:。如果您有更多的选择,您肯定需要构建新的视图控制器。甚至不要尝试将选取器视图添加到UIAlertView中。

1)我相信,您可以在任何iOS SDK版本中轻松做到这一点。由于UIAlertViews基本上是UIViews的子类,您可以简单地使用addSubview:

2) 这取决于选项列表的上下文。对于生日、日期或时间等选择,苹果使用了一个单独的UIViewController,其中包含UITableView(一行)和UIPickerView。如果不是以上三种,苹果通常会使用UITableView,在用户的选择旁边打一个复选标记。

不管怎样,我想每个人似乎都同意你应该拿出第二页的选项列表。

最新更新