AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

FSCalendarの年月表示と曜日を日本語にする方法【iOSアプリ開発】

f:id:no-work-no-life-4081:20181016074457j:plain


日記アプリの開発でカレンダーを表示するために、iOS用のカレンダーライブラリ「FSCalendar」を導入したのですが、タイトル部分に表示される年月の表示と、その下の曜日がデフォルトだと英語でした。

日本語化する方法を調べても見つからなかったのですが、色々試してみた結果、日本語にする方法がわかったので今回まとめておきたいと思います。


FSCalendarの年月表示を日本語にする方法


まず、タイトルの年月表示を日本語化する方法は2種類あります。

変更方法1. ストーリーボードの「Header Date..」のパラメータを変更する*

1つ目は、Xcodeのストーリーボードの「Header Date..」のパラメータを変更する方法。


f:id:no-work-no-life-4081:20181016074318j:plain

ストーリーボード上にFSCalendarを配置している状態であれば、
「Header Date..」の箇所に「YYYY年MM月」と入力すれば、2018年10月のように日本語表記になります。


変更方法2. コードから変更する*


2つ目は、コードから変更する方法。
FSCalendarの「headerDateFormat」に「YYYY年MM月」と入力すれば、2018年10月のように日本語表記になります。

 self.calendar.appearance.headerDateFormat = "YYYY年MM月"


日本語以外の言語も対応する場合などはこっちの方が良さそうです。




FSCalendarの曜日表示を日本語にする方法


FSCalendarの曜日表示を日本語にするには以下のようにやります。

        self.calendar.calendarWeekdayView.weekdayLabels[0].text = "日"
        self.calendar.calendarWeekdayView.weekdayLabels[1].text = "月"
        self.calendar.calendarWeekdayView.weekdayLabels[2].text = "火"
        self.calendar.calendarWeekdayView.weekdayLabels[3].text = "水"
        self.calendar.calendarWeekdayView.weekdayLabels[4].text = "木"
        self.calendar.calendarWeekdayView.weekdayLabels[5].text = "金"
        self.calendar.calendarWeekdayView.weekdayLabels[6].text = "土"

FSCalendarの「calendarWeekdayView.weekdayLabels」に各曜日のラベル(UILabel)が配列としてあるので、
それぞれのラベルのテキストに曜日を入れてます。


ちなみに、土曜日は青、日曜日は赤、それ以外は黒のテキストカラーにしたい場合は、以下のような感じ↓

        self.calendar.calendarWeekdayView.weekdayLabels[0].textColor = UIColor.red
        self.calendar.calendarWeekdayView.weekdayLabels[1].textColor = UIColor.black
        self.calendar.calendarWeekdayView.weekdayLabels[2].textColor = UIColor.black
        self.calendar.calendarWeekdayView.weekdayLabels[3].textColor = UIColor.black
        self.calendar.calendarWeekdayView.weekdayLabels[4].textColor = UIColor.black
        self.calendar.calendarWeekdayView.weekdayLabels[5].textColor = UIColor.black
        self.calendar.calendarWeekdayView.weekdayLabels[6].textColor = UIColor.blue


UILabelなので、textColorを変えたり、backgroundColorを変えたりできそうです。

もしかしたらもっとスマートな方法があるかもしれないので、知っている方はコメント等で教えて頂けると嬉しいです。


関連:
FSCalendarで祝日を判定してカレンダーに表示する方法【iOSアプリ開発】 - AppSeedのアプリ開発ブログ
写真も貼れるシンプルな日記アプリ、Nikkyをリリースしました! - AppSeedのアプリ開発ブログ