【问题标题】:How to change date colors of all Sunday's in fscalendar in swift如何快速更改 fscalendar 中所有星期日的日期颜色
【发布时间】:2020-05-11 05:37:49
【问题描述】:

如何将星期日的颜色更改为红色并禁用它们。实际上我没有找到任何解决方案。专门更改仅星期日而不是周末的日期颜色。

【问题讨论】:

    标签: cocoapods swift4 swift4.2 swift4.1 fscalendar


    【解决方案1】:

    如果我没记错的话,FSCalendar 是用 Objective-C 开发的,可以使用桥接头在 Swift 应用程序中使用。因此,要在基于 Swift 的 iOS 应用程序中有效地使用它,我建议创建一个管理器类 .h 和 .m 文件,然后在 Swift 应用程序中使用管理器类。这将帮助您保留 FSCalendar 的所有委托,包括其在管理器类本身中的属性。

    实现下面的委托方法来改变特定日期的颜色:

    -(UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance titleDefaultColorForDate:(NSDate *)date
    {
        NSInteger day = [[[NSCalendar currentCalendar] components: NSCalendarUnitWeekday fromDate: curDate] weekday];
        if(day == 1) //Sunday
        {
            return [UIColor redColor];
        }
    
        return [UIColor blackColor]; //Considering default date color is black
     }
    

    要禁用选择,请使用下面的委托方法

    -(BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(nonnull NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
    {
        NSInteger day = [[[NSCalendar currentCalendar] components: NSCalendarUnitWeekday fromDate: curDate] weekday];
        if(day == 1) //Sunday
        {
            return NO;
        }
    
        return YES;
    }
    

    这是非常基本的代码,可为您提供想法和方向,让您可以继续实现所需的自定义。

    【讨论】:

    • 谢谢。我们不能用快速的语言来做吗。我是新 iOS。
    • 不,据我所知,代表们没有被移植到 Swift。
    • 添加了,对类实现 FSCalendarDelegateAppearance 协议。然后你可以添加 titleDefaultColorFor 委托方法。
    • 如果我显示 day 变量,我只会得到 Sunday 值,即 1 。这使整个日历变红。但我只希望星期天是红色的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    相关资源
    最近更新 更多