SwiftでFSCalenderというライブラリを使ってカレンダーを表示しています。
したいこと①: ユーザーが2日以上選択した際に、自動的に選択箇所を解除したい(複数択可能だが、2日のみ)
したいこと②: ①と同時にラベルに表示していた日付を空欄にしたい(ほぼできています。)
行ったこと: if文で3パターンに分けた
分かる方いらっしゃいましたら、ご教授ください。
import UIKit import FSCalendar class decideDateViewController: UIViewController,FSCalendarDataSource,FSCalendarDelegate { @IBOutlet weak var cal: FSCalendar! @IBOutlet weak var labelDate1: UILabel! @IBOutlet weak var labelDate2: UILabel! override func viewDidLoad() { super.viewDidLoad() //複数択可能にする cal.allowsMultipleSelection = true //曜日を日本語化 cal.calendarWeekdayView.weekdayLabels[0].text = "日" cal.calendarWeekdayView.weekdayLabels[1].text = "月" cal.calendarWeekdayView.weekdayLabels[2].text = "火" cal.calendarWeekdayView.weekdayLabels[3].text = "水" cal.calendarWeekdayView.weekdayLabels[4].text = "木" cal.calendarWeekdayView.weekdayLabels[5].text = "金" cal.calendarWeekdayView.weekdayLabels[6].text = "土" } func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) { if cal.selectedDates.count == 1 { let tmpDate = Calendar(identifier: .gregorian) let year = tmpDate.component(.year, from: date) let month = tmpDate.component(.month, from: date) let day = tmpDate.component(.day, from: date) labelDate1.text = "選択日1:"+"(year)/(month)/(day)" } if cal.selectedDates.count == 2 { let tmpDate = Calendar(identifier: .gregorian) let year = tmpDate.component(.year, from: date) let month = tmpDate.component(.month, from: date) let day = tmpDate.component(.day, from: date) labelDate2.text = "選択日2:"+"(year)/(month)/(day)" } if cal.selectedDates.count > 2 { cal.allowsMultipleSelection = false labelDate1.text = "" labelDate2.text = "" } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/12 14:19