THCalendarDatePicker 1.3.0

THCalendarDatePicker 1.3.0

测试已测试
语言语言 Obj-CObjective C
许可证 NOASSERTION
发布上次发布2018年10月

Tribus Hannes 维护。



  • 作者:
  • Hannes Tribus

THCalendarDatePicker

Build Status Pod Version Pod Platform Pod License Coverage Status

此控件基于 datepicker-ios 控件和 KNSemiModalViewController 结合。

原始控制器不清楚方向变化,并且缺少我项目所需的某些自定义功能,因此我决定修改部分控制器以满足我自己的需求

截图

iPhone Portrait iPhone Landscape

安装

CocoaPods

使用 CocoaPods 安装 CocoaPods,请将以下内容添加到 Podfile 中

Objective-C

platform :ios, '8.0'
pod 'THCalendarDatePicker', '~> 1.2.9'

Swift

platform :ios, '8.0'
use_frameworks!
pod 'THCalendarDatePicker', '~> 1.2.9'

注意:我们遵循 http://semver.org 规范来对公共API进行版本控制。

手动

或者将此仓库中的 THCalendarDatePicker/ 目录复制到您的项目中。由于它使用 KNSemiModalViewController 作为依赖项,您需要添加并连接这些文件。

用法

以下是从 ExampleProject 中获得的示例初始化代码。

- (IBAction)touchedButton:(id)sender {
    if(!self.datePicker)
        self.datePicker = [THDatePickerViewController datePicker];
    self.datePicker.date = self.curDate;
    self.datePicker.delegate = self;
    [self.datePicker setAllowClearDate:NO];
    [self.datePicker setClearAsToday:YES];
    [self.datePicker setAutoCloseOnSelectDate:YES];
    [self.datePicker setAllowSelectionOfSelectedDate:YES];
    [self.datePicker setDisableHistorySelection:YES];
    [self.datePicker setDisableFutureSelection:NO];
    [self.datePicker setSelectedBackgroundColor:[UIColor colorWithRed:125/255.0 green:208/255.0 blue:0/255.0 alpha:1.0]];
    [self.datePicker setCurrentDateColor:[UIColor colorWithRed:242/255.0 green:121/255.0 blue:53/255.0 alpha:1.0]];

    [self.datePicker setDateHasItemsCallback:^BOOL(NSDate *date) {
     int tmp = (arc4random() % 30)+1;
     if(tmp % 5 == 0)
     return YES;
     return NO;
     }];
    //[self.datePicker slideUpInView:self.view withModalColor:[UIColor lightGrayColor]];
    [self presentSemiViewController:self.datePicker withOptions:@{
                                                                  KNSemiModalOptionKeys.pushParentBack    : @(NO),
                                                                  KNSemiModalOptionKeys.animationDuration : @(1.0),
                                                                  KNSemiModalOptionKeys.shadowOpacity     : @(0.3),
                                                                  }];
}

或者如何在 Swift 中实现

    lazy var datePicker:THDatePickerViewController = {
        var dp = THDatePickerViewController.datePicker()
        dp.delegate = self
        dp.setAllowClearDate(false)
        dp.setClearAsToday(true)
        dp.setAutoCloseOnSelectDate(false)
        dp.setAllowSelectionOfSelectedDate(true)
        dp.setDisableHistorySelection(true)
        dp.setDisableFutureSelection(false)
        //dp.autoCloseCancelDelay = 5.0
        dp.selectedBackgroundColor = UIColor(red: 125/255.0, green: 208/255.0, blue: 0/255.0, alpha: 1.0)
        dp.currentDateColor = UIColor(red: 242/255.0, green: 121/255.0, blue: 53/255.0, alpha: 1.0)
        dp.currentDateColorSelected = UIColor.yellowColor()
        return dp
    }()

    @IBAction func dateButtonTouched(sender: AnyObject) {
        datePicker.date = curDate
        datePicker.setDateHasItemsCallback({(date:NSDate!) -> Bool in
            let tmp = (arc4random() % 30) + 1
            return tmp % 5 == 0
        })
        presentSemiViewController(datePicker, withOptions: [
            KNSemiModalOptionKeys.pushParentBack    : NSNumber(bool: false),
            KNSemiModalOptionKeys.animationDuration : NSNumber(float: 1.0),
            KNSemiModalOptionKeys.shadowOpacity     : NSNumber(float: 0.3)
            ])
    }

特性

V1.2.X

  • 修复了问题 #28
  • 修复了问题 #30
  • 修复了问题 #69
  • 修复了问题 #71
  • 拉取请求 #40
  • 拉取请求 #41
  • 拉取请求 #53
  • 拉取请求 #70

V1.1.X

  • 修复了问题 #29
  • 修复了问题 #27

V1.0.X

  • 修复了问题 #23
  • 修复了问题 #22
  • 拉取请求 #21#20
  • 修复了问题 #18#17#16#15
  • 拉取请求 #13
  • 删除了iOS8弃用警告
  • 修复了问题 #12#11#7#5
  • 修复了bug(现在它会采用该地区默认的起始日,而不是自定义设置“周起始日”)
  • 可配置是否显示未来条目
  • 从日历中选择一个日期
  • 了解第一个星期的设置
  • 可配置颜色
  • 可配置是否允许清除选择
  • 可配置是否在选择后关闭

未来

  • 如果“hasItemCallback”未使用/禁用,则减小控件的大小

贡献

...非常欢迎。

我已经不再在我的项目中使用此组件,所以我可用于维护的时间真的很有限。

如果您有想法,请fork库,修改它,如果它对其他人有用且不影响其他用户的功能,我会将其插入

贡献者

许可协议

本项目的源代码在标准MIT许可下可用。请参阅许可文件