在Android设备上,如果我想要弹出日期或数字选择器,则弹出窗口中有一个控件。我还没有找到办法在iPhone上这样做?处理这些对象的推荐方法是什么?
编辑:我使用Interface Builder添加了一个UIDatePicker,但它是静态的,不会弹出。我会用什么代码来制作这个弹出窗口?
答案 0 :(得分:4)
UIResponder有一个inputView
属性,可以与UITextField和UITextView一起使用,用你喜欢的任何视图替换标准键盘,包括UIDatePicker。 (另请参阅:inputAccessoryView
,可用于将工具栏放在键盘上方。)
有关详细信息,请参阅iOS文档中的Custom Views for Data Input。
如果你想让键盘像键盘一样弹出,你必须自己动手。它不是太毛茸茸。
使拾取器视图从屏幕底部滑入到位:
pickerView.frame = <offscreen, just below the main view>
[UIView beginAnimations:@"PickerUp" context:nil];
pickerView.frame = <onscreen, at the bottom of the view>;
[UIView commitAnimations];
完成后使选择器视图滑开:
[UIView beginAnimations:@"PickerDown" context:nil];
pickerView.frame = <offscreen, just below the main view>
[UIView commitAnimations];
键盘是自动处理的,因为它由UITextView / UITextField管理;因为你想要一个自定义输入视图,你必须编写代码来自己管理它。
如果你走这条路,你应该看看有关becomeFirstResponder
和整个UIResponder链的文档,这样你的自定义控件就可以很好地与系统和其他文本字段一起使用。
如果你想在选择器上方有一个工具栏,只需创建一个包含工具栏,选择器以及你想从下面弹出的任何其他内容的通用UIView。然后为该容器视图设置动画,而不仅仅是选择器。
答案 1 :(得分:1)
如果你想从用户那里得到一个日期,有一个UIDatePicker会弹出一个控件来获取日期输入。
对于数字选择器,您有几个选项,您可以在UIAlertView中收集包含UITextField的数字(this question描述这是如何工作的),或者您可以使用UIPicker选择一个数字(类似于UIDatePicker用户界面)。
答案 2 :(得分:1)