【发布时间】:2018-08-18 21:03:00
【问题描述】:
这就是我想要做的。我有一个有 5 行的 UITableView。在最后两行中,我希望 UILabel 显示日期(如“开始”日期和“结束”日期)。当用户点击单元格时,我希望UIDatePicker 在工具栏中弹出一个“完成”按钮。当用户选择一个日期并单击“完成”时,UIDatePicker 应该关闭并且应该在单元格中为UILabel 显示新日期。我在网上和这里看到了几个例子,说将InputView 和InputAccessoryView 分配给包含完成按钮的日期选择器和工具栏。但是,UILabel 是 UIResponder,并且这些属性是只读的。我是否需要创建自己的自定义 UITableViewCell 才能完成这项工作?
这看起来应该很简单,在我的 Android 应用中做这样的事情也很简单。我正在使用 Xamarin,但我通常也可以找出用于本机 iOS 开发的其他语言的示例。任何帮助表示赞赏!
【问题讨论】:
-
“但是,UILabel 是一个 UIResponder 并且那些属性是只读的” 这些属性是只读的,但是通过子类化你可以说出它们的值是什么,所以这并不重要。
-
感谢您的回复!我将 Cell 子类化并覆盖 InputView 并像这样分配 UIDatePicker:
public override UIView InputView => _datePicker但是当我点击单元格时没有任何反应。我是否需要将 UILabel 子类化? -
大概没有什么可以检测水龙头。您需要检测到点击并成为第一响应者。
-
您是否有示例说明我将如何执行此操作,或者我可以在 TableSource 中的“RowSelected”或其他内容中调用什么方法?
-
我有一个日期选择器作为输入视图的例子,但你所做的不是我会做的。我会将日期选择器作为手风琴单元格放在表格视图中,就像在 Apple 的日历应用程序中设置事件开始日期时一样。
标签: ios swift uitableview xamarin.ios uidatepicker