2015-11-13 122 views
-1

我設法將此iOS日曆組件(https://github.com/lancy98/Calendar)轉換爲我的tvOS應用程序。現在我想選擇多個日期來顯示選定日期的某個報告。我怎樣才能做到這一點 ?由於在日曆中選擇多個日期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)") 
 
    } 
 
}

回答

0

你的問題不是很具體,如你所面臨的實際問題。所以,如果我的回答不是你想要的,請評論一下更具體的內容,我會盡我所能提供幫助。

我沒有使用這個庫之前,但我看了看代碼,我看到它的方式,有2個部分,這一問題:

1.選擇多個日期邏輯:如果是這樣唯一的問題是,每當選擇一個日期時,該部分就會變得很簡單,因爲您會撥打didSelectDate。所以在技術上你可以在你的CalendarViewController中設置一個數組,並保留所有選擇的日期。這個解決方案並不好,因爲你會錯過視覺表現,用戶體驗會很糟糕。

2.視覺顯示在屏幕上您的選擇:不幸的是我沒有看到解決的辦法,而無需修改實際庫的代碼支持多種選擇。具體來說有幾個類:MonthCollectionCell.swiftCalendarView.swift。主要將selectedDate切換爲一個名爲selectedDates的陣列,並在整個過程中支持該陣列。

編輯:

希望對你有用。

+0

嗨Xemacobra,謝謝你的回覆。我的應用程序是一個7分鐘的鍛鍊,包括這個日曆,我想讓用戶選擇鍛鍊的日子。我的問題不是很具體,因爲我是xcode的新手,我不知道如何制定這個問題。 –

+0

沒問題。我們都在不斷學習。我只是想知道你面臨的問題是什麼,所以我可以提供幫助。你知道如何修改上面提到的代碼,或者你會對更多的解釋感興趣嗎? – xemacobra

+0

不,我不知道如何修改代碼,我卡在那裏。 (但我也不想濫用你的幫助) –