【Swift】FSCalendarのデリゲート(calendar)メソッド一覧!

この記事からわかること
- SwiftでFSCalendarライブラリに用意されているデリゲートメソッド一覧
index
[open]
\ アプリをリリースしました /
参考文献:Github:FSCalendar
Swiftで使えるカレンダーライブラリFSCalendarに用意されているデリゲートメソッドをまとめました。FSCalendarの使い方に関しては以下の記事を参考にしてください。
FSCalendarのデリゲート(calendar)メソッドの使い方
FSCalendarではさまざまな処理や機能がデリゲートメソッドとして用意されています。使用するためには対象のクラスがFSCalendarDataSource
とFSCalendarDelegate
プロトコルに準拠している必要があります。デリゲートメソッド名は全てcalendar
となっており、引数と役割が異なります。
デリゲートメソッドを使用するためにUIViewControllerに各プロトコルを準拠させたあとFSCalendar
インスタンスを生成し、dataSource
プロパティとdelegate
プロパティに自身をセットします。
import UIKit
import FSCalendar
class ViewController: UIViewController,FSCalendarDataSource,FSCalendarDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let calendar = FSCalendar(frame: CGRect(x: 50, y: 200, width: 320, height: 300))
calendar.dataSource = self
calendar.delegate = self
view.addSubview(calendar)
}
}
これで各プロトコルに用意されているデリゲートメソッドが使用できるようになりました。
FSCalendarに用意されているデリゲート(calendar)メソッド一覧
// 指定された日付のタイトルを、日付けのテキストの代わりとして dataSource に要求します。
- (nullable NSString *)calendar:(FSCalendar *)calendar titleForDate:(NSDate *)date.DATA:(nullable NSString *)calendar:(FSCalendar *)calendar titleForDate:(NSDate *)date;
// 指定された日付のサブタイトルを曜日テキストの下に表示するかどうか、dataSourceに問い合わせます。
- (nullable NSString *)calendar:(FSCalendar *)calendar subtitleForDate:(NSDate *)date;
// 指定された日付の画像を dataSource に問い合わせます。
- (nullable UIImage *)calendar:(FSCalendar *)calendar imageForDate:(NSDate *)date; // 指定された日付の画像をデータソースとして問い合わせます (NSDate *)date;
// 表示する最小の日付をdataSourceに問い合わせます。
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar;
// 表示する最大日付をdataSourceに問い合わせます。
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar. (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar;
// カレンダーの特定のデータを挿入するセルをデータソースに問い合わせます。
- (__kindof FSCalendarCell *)calendar:(FSCalendar *)calendar cellForDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)position.FSCalendarCell:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)position;
// 指定された日付のイベントドットの数をデータソースに問い合わせます。
- (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date; (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date;
// FSCalendarオブジェクトのデリゲートは、FSCalendarDelegateプロトコルを採用する必要があります。FSCalendarDelegateのオプションメソッドは、選択、ユーザーイベント、カレンダーのフレームを管理するのに役立ちます。
FSCalendarDelegate <NSObject> プロトコル
オプション
// 特定の日付をタップして選択できるかどうかをデリゲートに問い合わせます。
- (BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition.BOOL (FSCalendarMonthPosition)月位置;
// カレンダーの日付がタップで選択されたことをデリゲートに通知します。
- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition.FSCalendarMonthPosition:(FSCalendarMonthPosition)monthPosition;
// 特定の日付をタップして非選択にすることができるかどうかをデリゲートに問い合わせます。
- (BOOL)calendar:(FSCalendar *)calendar shouldDeselectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition;
// カレンダーの日付をタップして非選択にすることをデリゲートに通知します。
- (void)calendar:(FSCalendar *)calendar didDeselectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition.FSCalendarMonthPosition:(FSCalendarMonthPosition)monthPosition;
// カレンダーが外接矩形を変更しようとしていることをデリゲートに伝えます。
- (void)calendar:(FSCalendar *)calendar boundingRectWillChange:(CGRect)bounds animated:(BOOL)animated;
// 指定されたセルがカレンダーに表示されることをデリゲートに通知します。
- (void)calendar:(FSCalendar *)calendar willDisplayCell:(FSCalendarCell *)cell forDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition.FSCalendarCell forDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition) monthPosition;
// カレンダーが現在のページを変更しようとしていることをデリゲートに通知します。
- (void)calendarCurrentPageDidChange:(FSCalendar *)calendar;
// FSCalendarDelegateAppearanceは、カレンダー内のコンポーネントのフォントや色を決定しますが、より具体的には、FSCalendarAppearanceを使用します。基本的に、カレンダーの外観をグローバルにカスタマイズする必要がある場合は、FSCalendarAppearanceを使用します。しかし、日ごとに異なる外観が必要な場合は、FSCalendarDelegateAppearanceを使用します。
// @see FSCalendarAppearance
プロトコル FSCalendarDelegateAppearance <FSCalendarDelegate>
// 指定された日付の非選択状態での塗りつぶしの色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance fillDefaultColorForDate:(NSDate *)date.FSCalendarDelegate:(FSCalendarAppearance *)appearance.FSCalendarAppearance:(NSDate *)date.Date;
// 指定された日付の選択状態での塗りつぶし色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance fillSelectionColorForDate:(NSDate *)date;
// 指定された日付の非選択時の文字色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance titleDefaultColorForDate:(NSDate *)date;
// 指定された日付の、選択された状態の日の文字色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance titleSelectionColorForDate:(NSDate *)date;
// 指定された日付の非選択時の字幕の色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance subtitleDefaultColorForDate:(NSDate *)date;
// 指定された日付の選択された状態での字幕の色をデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance subtitleSelectionColorForDate:(NSDate *)date;
// 指定された日付のイベントカラーをデリゲートに問い合わせます。
- (nullable NSArray<UIColor *> *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventDefaultColorsForDate:(NSDate *)date;
// 指定された日付の選択状態にある複数のイベントカラーをデリゲートに問い合わせます。
- (nullable NSArray<UIColor *> *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventSelectionColorsForDate:(NSDate *)date;
// 指定された日付の非選択状態のボーダーカラーをデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderDefaultColorForDate:(NSDate *)date;
// 指定された日付の選択状態でのボーダーカラーをデリゲートに問い合わせます。
- (nullable UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderSelectionColorForDate:(NSDate *)date;
// 指定された日付の曜日テキストのオフセットをデリゲートに問い合わせます。
- (CGPoint)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance titleOffsetForDate:(NSDate *)date;
// 指定された日付の字幕のオフセットをデリゲートに問い合わせます。
- (CGPoint)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance subtitleOffsetForDate:(NSDate *)date;
// 指定された日付の画像のオフセットをデリゲートに問い合わせます。
- (CGPoint)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance imageOffsetForDate:(NSDate *)date;
// 指定された日付のイベントドットのオフセットをデリゲートに問い合わせます。
- (CGPoint)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventOffsetForDate:(NSDate *)date;
// 指定された日付の境界線の半径をデリゲートに問い合わせます。
- (CGFloat)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderRadiusForDate:(NSDate *)date;
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。