我有一个简单的日历应用程序,使用UICalendarView。点击日历中的某个日期后,它会将选定的日期添加到var components = [DateComponents]()
。
func dateSelection(_ selection: UICalendarSelectionSingleDate, didSelectDate dateComponents: DateComponents?) {
components.append(dateComponents!)
calendarView.reloadDecorations(forDateComponents: components, animated: true)
现在我想使用decorationFor
方法更改选定组件的装饰。
func calendarView(_ calendarView: UICalendarView, decorationFor dateComponents: DateComponents) -> UICalendarView.Decoration? {
if components.count == 0 {
return .default()
}
if components.count >= 1 {
return .customView() {
let emoji = UILabel()
emoji.text = "🦄"
return emoji
}
}
return .default()
}
但是我不知道如何处理dateComponents
,这样它就可以只在选定的日期返回所需的装饰。
我做了一个简单的检查,以防组件数组为空,但不知道如何返回某些元素的装饰。
1条答案
按热度按时间odopli941#
您可以使用airbnb horizon calendar,或者至少了解它们的成本并在项目中使用它