swift 更改UICalendarView中某些元素的装饰

9vw9lbht  于 2023-02-03  发布在  Swift
关注(0)|答案(1)|浏览(113)

我有一个简单的日历应用程序,使用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,这样它就可以只在选定的日期返回所需的装饰。
我做了一个简单的检查,以防组件数组为空,但不知道如何返回某些元素的装饰。

odopli94

odopli941#

您可以使用airbnb horizon calendar,或者至少了解它们的成本并在项目中使用它

相关问题