OCCalendar 是一个为 iPhone/iPad 提供弹出式日期选择器控制器的非常简单的组件。它非常容易添加到您的项目中,且全部由 100% CoreGraphics 代码组成,因此不使用任何图像,并且具有分辨率无关性。我意识到我需要稍微减小 iPhone 的大小。我最初是为 iPad 编写的,我的路径和大小都是稍微太宽了。我会尽量修。
OCCalendar 授予 BSD 许可证,可用于带或不带归因的使用。祝您玩得开心!
将以下文件拖入您的项目
然后实现 OCCalendarDelegate 协议中您希望调用的类。此协议中只有一个方法指定了日历向返回日期的开始和结束范围的方式。这些是以 NSDate 对象返回,以便于使用。在演示应用中,我们执行以下操作
- (void)completedWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateStyle:NSDateFormatterShortStyle];
[self showToolTip:[NSString stringWithFormat:@"%@ - %@", [df stringFromDate:startDate], [df stringFromDate:endDate]]];
calVC.delegate = nil;
[calVC release];
calVC = nil;
}
现在,您应该能够通过 alloc 和 init 它,然后将其添加到视图中来显示日历。
//Here's where the magic happens
calVC = [[OCCalendarViewController alloc] initAtPoint:CGPointMake(150, 50) inView:self.view];
calVC.delegate = self;
[self.view addSubview:calVC.view];
您可以通过调整 CoreGraphics 渲染代码来自定义控制器的外观和感觉。我意识到现在的样子不是很好看,但我最终会重构它,确保一切都很整洁。您可以通过在初始化器中更改 "arrowPosition" 枚举来更改小箭头的位置,使其位于弹出窗口的左侧或右侧。
[[OCCalendarViewController alloc] initAtPoint:insertPoint inView:self.view arrowPosition:OCArrowPositionRight] //Right position
[[OCCalendarViewController alloc] initAtPoint:insertPoint inView:self.view arrowPosition:OCArrowPositionCenter] //Center position
[[OCCalendarViewController alloc] initAtPoint:insertPoint inView:self.view arrowPosition:OCArrowPositionLeft] //Left position