我在Xcode中使用FSCalendar来创建多个事件。到目前为止,我已经有了带点和副标题的特定事件。我正在尝试获得完整的描述,在这种情况下,副标题弹出在某个地方,以便它可以完全阅读。除了FSCalendar的select函数,我不知道从哪里开始。现在我有一个10月3日的活动,作为测试,它会说“你好,今天我们四号房子”。正如你所看到的,它太大了,不能读完所有的方块。
import UIKit
import FSCalendar
class CalendarController: UIViewController {
fileprivate weak var calendar: FSCalendar!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let calendar = FSCalendar(frame: CGRect(x: 8, y: 200, width: 350, height: 420))
calendar.dataSource = self
calendar.delegate = self
view.addSubview(calendar)
self.calendar = calendar
}
var datesWithEvent = ["2019-10-03", "2015-10-06", "2015-10-12", "2015-10-25"]
var datesWithMultipleEvents = ["2015-10-08", "2015-10-16", "2015-10-20", "2015-10-28"]
fileprivate lazy var dateFormatter2: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter
}()
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let dateString = self.dateFormatter2.string(from: date)
if self.datesWithEvent.contains(dateString) {
return 1
}
if self.datesWithMultipleEvents.contains(dateString) {
return 3
}
return 0
}
}
extension CalendarController: FSCalendarDataSource, FSCalendarDelegate{
func calendar(_ calendar: FSCalendar, subtitleFor date: Date) -> String? {
let dateString = self.dateFormatter2.string(from: date)
if self.datesWithEvent.contains(dateString) {
return "Hello today is house four"
}
return nil
}
}
[1]: https://i.stack.imgur.com/y2zvg.png发布于 2019-11-12 14:15:51
FSCalendarDelegate有didSelect date方法,只要实现它即可。
func calendar(_ calendar: FSCalendar?, didSelect date: Date?, at monthPosition: FSCalendarMonthPosition) {
if let date = date {
let dateString = self.dateFormatter2.string(from: date)
if self.datesWithEvent.contains(dateString) {
print("House hours..") // you can show alert or show view
}
}
}https://stackoverflow.com/questions/58811362
复制相似问题