kobasaです(´ω`*)
FSCalendarをさらにカスタマイズするためにDelegateについて勉強していました。
ついでに日本の祝日判定を行ってくれるCalculateCalendarLogic
というpodも読み込みます。
まずはviewDidLoad
内にテーブルでも使用した委任の記述をします。
calendar.delegate = self
calendar.dataSource = self
次にクラスにもDelegate
の記述をするのですが、ここで可読性を高めるために
教本ではextension
というものを使用しています。extension
は拡張という意味で、コントローラーの今までの処理を引き継ぎつつ
まとまった処理を追記したいときに使用するようです。
クラス外に新しく拡張したクラスを記述する感じ。
import UIKit
import FSCalendar
import CalculateCalendarLogic
class HealthCheckViewController: UIViewController {
// 今までの処理
}
extension HealthCheckViewController: FSCalendarDataSource, FSCalendarDelegate, FSCalendarDelegateAppearance {
// FSCalendarDelegateの処理をまとめる
}
追記したextension
内にDelegateを使用した処理を記述していきます。
// 日付マスの背景色を設定。backgroundColorではない
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, fillDefaultColorFor date: Date) -> UIColor? {
return .clear
}
// 日付マスの枠線の色を設定。
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, borderDefaultColorFor date: Date) -> UIColor? {
return .clear
}
// 日付マスの枠線の角丸の度合いを設定。
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, borderRadiusFor date: Date) -> CGFloat {
return 0.5
}
// 日付の文字色を設定。
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? {
return colors.black
}
色々設定できます。土日祝なら色を変更したり、本日のマスだけ枠線を表示したりなど
見栄えの良くなる設定もしていました。次回に書きます(´ω`*)
(デフォルトの状態なら最初から設定済。オリジナルにカスタムするなら記述が必要)
コメント