weekdaysDatePicker 1.1.0

weekdaysDatePicker 1.1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2015 年 9 月

Bag of Stars 维护。



  • 作者:
  • bagofstars

weekdaysDatePicker 是一个带有日期、月份和年份组件以及额外的可自动调整的星期组件的拾取器视图。例如,选择 2015 年 12 月 31 日,星期行将自动滚动到周四。

WeekdayDatePicker demo

安装

推荐使用 CocoaPods 安装。将以下行添加到 Podfile 中

pod 'WeekdayDatePicker', '~> 1.1.0'

或者,只需将整个 weekdaysDatePicker 目录直接拖到您的项目中。这通过示例项目进行了演示。

如何使用它

设置

在 Interface Builder 中将 UIPickerView 对象拖到视图中,并将其类设置为 BoSWeekdayDatePickerView

Usage demonstration

或者,您可以直接在源代码中创建它。例如

BoSWeekdayDatePickerView *weekdayDatePickerView = [[BoSWeekdayDatePickerView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 216.0f)];

在两种情况下都不忘设置最小、最大和初始选择日期,例如

#import "BoSWeekdayDatePicker.h"

(...)

NSDate *minDate = [NSDate bos_dateInCalendar:[BoSWeekdayDatePickerCalendar sharedInstance].calendar fromDay:1 month:1 year:2000];
NSDate *maxDate = [NSDate bos_dateInCalendar:[BoSWeekdayDatePickerCalendar sharedInstance].calendar fromDay:31 month:12 year:2020];
NSDate *initialSelectionDate = [NSDate bos_dateInCalendar:[BoSWeekdayDatePickerCalendar sharedInstance].calendar fromDay:8 month:8 year:2015];

[weekdayDatePickerView setupMinDate:minDate maxDate:maxDate initialSelectionDate:initialSelectionDate];

选择回调

一旦安装了日期选择器,您就可以开始捕捉新行选择时发送的数据(基本上是从 pickerView:didSelectRow:inComponent: 方法)。这可以通过实现 BoSWeekdayDatePickerView 的公共块属性来完成:

@property (nonatomic, copy) void (^didSelectRowCallback)(BoSWeekdayDatePickerSelectedItems *selectedItems);

例如,选择后的回调,如上所示的 gif 所示

  weekdayDatePicker.didSelectRowCallback = ^(BoSWeekdayDatePickerSelectedItems *selectedItems) {
    NSLog(@"Selected row values: %@", selectedItems.arrayOfRowValues);
    NSLog(@"Selected date: %@", selectedItems.selectedDate);
    NSLog(@"Index of selected row: %d", selectedItems.indexOfSelectedRow);
    NSLog(@"Index of selected component: %d", selectedItems.indexOfSelectedComponent);
  };

将产生以下结果

Selected row values: (
    Thursday,
    12,
    31,
    2015
)
Selected date: 2015-12-31 00:00:00 +0000
Index of selected row: 30
Index of selected component: 2

国际化与本地化

日期选择器会根据设置 -> 一般 -> '区域格式' 中选择的格式调整组件顺序。例如,英国格式将导致日-月-年顺序,而美国将有月-日-年。

为了在您选择的语言中查看星期名称,请遵循添加本地化的标准程序。一个好的教程可以在 Ray Wenderlich 的页面 上找到。示例项目已启用波兰语环境。

外观

基本的 weekdaysDatePicker 外观在 BoSWeekdayDatePickerAppearance 类中实现。我设置了 13 点 Helvetica Light 字体,用 13% 灰色着色,并为组件标签设置了任意间距和缩进。您可以自由修改或替换为自己的实现。

限制

仅支持公历。此外,组件不“循环”。并且 weekdaysDatePicker 在具有手动内存管理的项目中泄漏,因此必须使用 ARC。

类架构(图)

Class diagram image

版本发布说明

Ver 1.1.0
  • 添加了 `did-select-row` 完成块
  • 扩展示例项目以展示新完成块的实际应用
Ver 1.0.2
  • 添加了主头文件,该文件结合了所需导入
Ver 1.0.1
  • 添加了 CocoaPods 集成
Ver 1.0.0
  • 首次发布!

许可证

MIT