【问题标题】:How to display the date in circle having event using FSCalendar?如何使用 FSCalendar 在有事件的圆圈中显示日期?
【发布时间】:2020-06-09 11:43:43
【问题描述】:

我已经使用 swift 以编程方式添加了 FSCalendar,并从 api 调用中获取事件列表。默认情况下,事件在事件日期下方显示为点。但是我需要将事件显示在圆圈中,而不是日期下方的点。我尝试了很多方法,但都不起作用。有什么办法吗?

 func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
   return Events[date.GetFormatedDateAsString(format: "dd.MM.YYYY")] ?? 0
 }

【问题讨论】:

    标签: swift fscalendar


    【解决方案1】:

    首先,您必须为 FSCalendar 定义 DataSource 和 Delegate。

    例如,我的日历有一个日期数组:

    var eventsDateArray: [Date] = [SomeDatesExample]
    

    所以,我使用 FSCalendarDelegateAppearance 来更改单元格的外观,当我的日期被渲染时,使用方法 titleDefaultColorForfillDefaultColorFor

     extension CalendarViewController: FSCalendarDelegateAppearance {
    
     // Return UIColor for numbers;
    
     func calendar(_ calendar: FSCalendar, 
                   appearance: FSCalendarAppearance, 
                   titleDefaultColorFor date: Date
     ) -> UIColor? {
    
          if self.eventsDateArray.contains(date) {
               return Colors.white 
               // Return UIColor for eventsDateArray 
          }
    
        return Colors.brownDark // Return Default Title Color
    }
    
     // Return UIColor for Background;
    
    func calendar(_ calendar: FSCalendar, 
                appearance: FSCalendarAppearance, 
                fillDefaultColorFor date: Date
    ) -> UIColor? {
    
        if self.eventsDateArray.contains(date) {
            return Colors.blue // Return UIColor for eventsDateArray
        }
    
        return Colors.white // Return Default UIColor 
    }
    }
    

    基本上你必须检查你的日期是否正在显示,然后返回一个颜色。

    如果它不起作用或您有任何疑问,请致电。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 2017-01-06
      • 2018-06-17
      • 2013-03-01
      相关资源
      最近更新 更多