Upload
fumiya-sakai
View
405
Download
0
Embed Size (px)
Citation preview
カレンダーを自作する大概ライブラリ使うけど自分で作ってみる
自己紹介酒井文也(さかい ふみや)
今までの仕事履歴(本業)
石川県金沢市生まれ・東京(大塚)住まいの30歳本業は某口コミサイトのプログラマ ※Railsを使っています
26歳~30歳:PHP / Rubyプログラマ
23歳~25歳:Webデザイナー兼ディレクター
Objective-C歴:2ヶ月くらい Swift歴:20日
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向けと食べ物系コンテンツのお仕事が多い…
→ まだまだ初心者っす。。
カレンダーでもこんなのしたいなんで自分でつくってみたいと思ったの?
参考にしたもの
既存のカレンダーライブラリは…・日本の祝祭日に対応してない
機能:ジョルテ(Androidアプリ)デザイン:Fril
・デザインの変更をもっと簡単にしたい・次の画面に値を引き継いで渡したい
ポイントは「ボタンを並べてカレンダー風に」すること
・上位バージョンで使えないかもしれない・ソースを見たらマジで地獄だった
objective-cを始めて5日目の僕はこうなった
・よさげなのはあったけど中国語だった上記のような悲劇は嫌なので もう自分でつくることにした 期間:1day Swift移植6hour
では実際にサンプルを!こちらのページからダウンロードをどうぞ
今後の拡張予定
https://github.com/fumiyasac/handMadeCalendar
・上記ページの「Download ZIP」よりどうぞ!
・デザイン変更&画面遷移サンプル(近日更新予定)
・日本の祝祭日対応(3年後までは検証済み)
・こちらは今後も更新は随時行う予定です。
※上記の使用例は現在作成中のアプリがありますので、 もしご覧になりたい方はお気軽にお申し付け下さい
https://github.com/fumiyasac/handMadeCalendarOfSwift
それでは軽く処理の説明をします※プログラムがはじめての方は「ふーん」程度でも大丈夫です
※今回はせっかくですので「Swift版」で解説します
※今回はこちらのURLを元に解説を行います。
通称:ハンドメイドカレンダーデフォルトのデザインは「円」と「ピンク」がベースです
※「Objective-C版」も用意しています
http://blog.just1factory.net/programming/179
カレンダー計算の説明①7(横)×6(縦)の入れ物を作る for文で配置
このボタンにはi = 0, 1, … , 41の番号があるイメージ
※まるいやつはボタン
②1日の日付と曜日がカレンダー コンポーネントでとれるので ボタンに対して日を入れる。
曜日は日曜~土曜が 1~7の数値で取れる
1日の位置は、i == dayOfWeek - 1 で決定できる
③条件分岐は下記の3パターンに 対して行う(日付が入る or 日 付が入らない場合)
曜日とその月の最後 の日から条件を決定
case1) 日付が入らない: i < dayOfWeek - 1
case2) 日付が入る: i == dayOfWeek - 1 || i < dayOfWeek + maxDay - 1
case3) 日付が入らない: i == dayOfWeek + maxDay - 1 || i < 42
※変数: dayOfWeek: 曜日 maxDay: その月の最終日
※日付が入る場合: ボタンにタグを仕込む (タグ=日の値となる)
質疑応答※なんでもOKです!(参考書籍や勉強方法等も含む)プライベートなことでも可能な限りお答えします。