在日历tvOS中选择多个日期



我成功地转换了这个iOS日历组件(https://github.com/lancy98/Calendar)到我的tvOS应用程序。现在我想选择多个日期来显示所选日期的一些报告。我该怎么做?感谢

class CalendarViewController: UIViewController, CalendarViewDelegate {
    
    
    @IBOutlet var placeholderView: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // todays date.
        let date = NSDate()
        
        // create an instance of calendar view with
        // base date (Calendar shows 12 months range from current base date)
        // selected date (marked dated in the calendar)
        let calendarView = CalendarView.instance(date, selectedDate: date)
        calendarView.delegate = self
        calendarView.translatesAutoresizingMaskIntoConstraints = false
        placeholderView.addSubview(calendarView)
        
        // Constraints for calendar view - Fill the parent view.
        placeholderView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[calendarView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["calendarView": calendarView]))
        placeholderView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[calendarView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["calendarView": calendarView]))
    }
    
    func didSelectDate(date: NSDate) {
        print("(date.year)-(date.month)-(date.day)")
    }
}

您的问题并不是很具体,因为您面临的实际问题是什么。因此,如果我的答案不是您想要的,请提供更多细节,我会尽我所能提供帮助。

我以前没有使用过这个库,但我看了一下代码和我对它的看法,这个问题有两个部分:

1.从逻辑上选择多个日期:如果这是唯一的问题,那么这一部分就会很简单,因为每次选择日期时都会回调到didSelectDate。因此,从技术上讲,您可以在CalendarViewController中设置一个数组,并将所有选定的日期保留在其中。但这种解决方案并不好,因为你会错过视觉表现,用户体验也会很糟糕。

2.在屏幕上直观地显示您的选择:不幸的是,如果不修改实际库的代码以支持多项选择,我看不到解决这一问题的方法。具体地说是两个类:MonthCollectionCell.swiftCalendarView.swift。主要是将selectedDate切换为一个称为selectedDates的阵列,并始终支持它。

编辑:

  • 所以我一直在摆弄代码,试图更好地解释它,最终在我的fork中添加了完整的功能:https://github.com/XemaCobra/Calendar

  • 要了解需要什么,请检查提交和所做的更改:https://github.com/XemaCobra/Calendar/commit/b9efa01f7ac5ae56bc0bdd72b3eeb1b618dbb00e

  • ViewController.swift中注释的代码应该解释如何使用它

希望对你有用。

相关内容

  • 没有找到相关文章

最新更新