【问题标题】:How to display datepicker like that in iOS 7 calendar UIDatePicker如何在 iOS 7 日历 UIDatePicker 中显示日期选择器
【发布时间】:2013-10-18 10:52:19
【问题描述】:

我是 iOS 开发的新手,正在学习一些零碎的东西。 我有更多的查询继续到另一个线程 (iOS7: How does Apple make a navigation controller look like a uiactionsheet in the calendar app) 在默认日历中的 iOS 7 新事件创建,当我们单击 UINavigationBar 上的 + 时显示(我假设)。

有谁知道如何创建 UIDatePicker 以便在我单击开始/结束日期字段时显示/隐藏它?我看到一个视频,其中 UIActionSheet 在 XCode 4.5 中使用,但在那个用户需要点击完成等按钮来隐藏它。在 iOS 7 日历中,当我单击外部选择器(即开始日期字段)时,它会隐藏。我希望问题很清楚?

请告知如何实现此功能?

【问题讨论】:

  • 日历应用使用UITableViewController。当用户点击开始或结束日期时,它会添加一个新的UITableViewCell,其中包含UIDatePicker。在显示日期选择器时,如果选择了表格中的任何其他单元格,则包含日期选择器的单元格将从表格中删除。如果您仔细点击灰色区域(即,不是在单元格上),您会注意到日期选择器没有被删除。
  • 非常感谢@bobnoble,这是有道理的。请原谅我缺乏知识,正如我提到的,我还在学习。所以在这里询问更多我希望 UI 屏幕与我上面描述的 iOS 7 默认日历上显示的屏幕几乎相同。所以我假设,我将在我的层板上的 UITableViewController 的表格视图中添加 UITableViewCells 并放入必填字段,对吗?或者我需要以编程方式添加这些?如果我在设计时添加 - ReusableIdentifier 将如何工作?到目前为止,我正在使用来自 sqlite 的数据填充 UITableview 并将此标识符设置为一个值,即“Cell”。
  • 您可以使用故事板创建多个原型UITableViewCells,每个原型都有一个唯一标识符。
  • 绝对精彩@bobnoble :-),感谢您的指导。
  • Apple 提供了一个示例源代码,developer.apple.com/library/ios/samplecode/DateCell/… 刚刚发现。似乎很多人都要求这个。 stackoverflow.com/questions/18973573/…

标签: ios calendar uidatepicker uiactionsheet


【解决方案1】:

您可以尝试使用OCCalendarController,简单舒适。只需下载压缩文件并获取以前缀 OC 命名的所有文件。

OCCalendarViewController.m 中,您可以通过自己以编程方式添加“确定”或“取消”按钮来进行必要的更改。

要在主文件中调用日历视图,请使用以下行,

//Here's where the magic happens calVC = [[OCCalendarViewController alloc] initAtPoint:CGPointMake(150, 50) inView:self.view]; calVC.delegate = self; [self.view addSubview:calVC.view];

还要包括以下委托来接收日期选择(如果用户选择日期或日期范围)

- (void)completedWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate {

最后你还可以使用代码自定义箭头(与日历视图一起出现),

[OCCalendarViewController alloc] initAtPoint:insertPoint inView:self.view arrowPosition:OCArrowPositionRight]

其余详细信息可在自述文件中找到。自己试试吧,它会像魅力一样工作。干杯!

【讨论】:

  • 此代码旧且不受支持。你最好还是去别处看看。
【解决方案2】:

我的开源项目 HSUDatePicker 可能会对您有所帮助。 https://github.com/tuoxie007/HSUDatePicker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 2023-03-03
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多