UIKit、fscalendarを使用して、カレンダーアプリさくせしているのですが、日曜祝日意外に特定の日付の色を現在の黒色から他の色に変更したいのですが。 毎週何曜日とかではなく、「9月30日と10月15日」の日付の数字部分をオレンジ色にしたい」といった感じです。土曜日、日曜祝日の色の変更はできています。分かる方教えてください。
swift
1 2 3import UIKit 4import FSCalendar 5import CalculateCalendarLogic 6 7class ViewController: UIViewController,FSCalendarDelegate,FSCalendarDataSource,FSCalendarDelegateAppearance{ 8 9 @IBOutlet weak var calendar: FSCalendar! 10 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // デリゲートの設定 15 self.calendar.dataSource = self 16 self.calendar.delegate = self 17 18 } 19 20 override func didReceiveMemoryWarning() { 21 super.didReceiveMemoryWarning() 22 // Dispose of any resources that can be recreated. 23 } 24 25 fileprivate let gregorian: Calendar = Calendar(identifier: .gregorian) 26 fileprivate lazy var dateFormatter: DateFormatter = { 27 let formatter = DateFormatter() 28 formatter.dateFormat = "yyyy-MM-dd" 29 return formatter 30 }() 31 32 // 祝日判定を行い結果を返すメソッド(True:祝日) 33 func judgeHoliday(_ date : Date) -> Bool { 34 //祝日判定用のカレンダークラスのインスタンス 35 let tmpCalendar = Calendar(identifier: .gregorian) 36 37 // 祝日判定を行う日にちの年、月、日を取得 38 let year = tmpCalendar.component(.year, from: date) 39 let month = tmpCalendar.component(.month, from: date) 40 let day = tmpCalendar.component(.day, from: date) 41 42 // CalculateCalendarLogic():祝日判定のインスタンスの生成 43 let holiday = CalculateCalendarLogic() 44 45 return holiday.judgeJapaneseHoliday(year: year, month: month, day: day) 46 } 47 // date型 -> 年月日をIntで取得 48 func getDay(_ date:Date) -> (Int,Int,Int){ 49 let tmpCalendar = Calendar(identifier: .gregorian) 50 let year = tmpCalendar.component(.year, from: date) 51 let month = tmpCalendar.component(.month, from: date) 52 let day = tmpCalendar.component(.day, from: date) 53 return (year,month,day) 54 } 55 56 //曜日判定(日曜日:1 〜 土曜日:7) 57 func getWeekIdx(_ date: Date) -> Int{ 58 let tmpCalendar = Calendar(identifier: .gregorian) 59 return tmpCalendar.component(.weekday, from: date) 60 } 61 62 // 土日や祝日の日の文字色を変える 63 func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? { 64 //祝日判定をする(祝日は赤色で表示する) 65 if self.judgeHoliday(date){ 66 return UIColor.red 67 } 68 69 //土日の判定を行う(土曜日は青色、日曜日は赤色で表示する) 70 let weekday = self.getWeekIdx(date) 71 if weekday == 1 { //日曜日 72 return UIColor.red 73 } 74 else if weekday == 7 { //土曜日 75 return UIColor.blue 76 } 77 78 return nil 79 } 80 81} 82コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/30 05:06