2

在我的应用程序中,当我按下空白区域时,我正在尝试添加使用CalendarKit创建新事件的功能,但我找不到如何做到这一点。

我知道这是可能的,因为您可以在演示应用程序中做到这一点:

我尝试将此添加到我的应用程序代码中:

override func create(event: EventDescriptor, animated: Bool = false) {
    self.events.append(event) // self.events is my events data source
}

但它没有用,事实上,当我长按一个空白时它甚至都没有被调用。

我也尝试查看源代码,但我一无所获。我怎样才能做到这一点?提前致谢

4

1 回答 1

2
override func dayView(dayView: DayView, didLongPressTimelineAt date: Date) {
    let newEvent = Event()
    
    newEvent.startDate = date
    newEvent.endDate = date.addingTimeInterval(3600)
    
    // Customize your event...
    newEvent.text = randomName() // A function that generates a new random name that haven't been used before.
    
    self.create(event: newEvent)
}

override func create(event: EventDescriptor, animated: Bool = false) {
    super.create(event: event, animated: animated)
    self.events.append(event)
}

override func dayView(dayView: DayView, didUpdate event: EventDescriptor) {
    for (index, eventFromList) in events.enumerated() {
        if eventFromList.text == event.text {
            events[index] = event
        }
    }
    self.endEventEditing()
    self.reloadData()
}

请确保每个Event人都有自己的唯一名称,否则将无法正常工作

于 2020-12-24T12:09:04.773 回答