1.17 另一個(gè)自定義的CVCalendar日歷 [iOS開發(fā)中的神兵利器]

1. 本節(jié)課將為您演示另一款第三方的日歷類庫。首先確保在您的項(xiàng)目中,已經(jīng)安裝了所需的第三方庫剥汤,雙擊查看此處的Pod配置文件。

2. 根據(jù)配置文件中的相關(guān)設(shè)置排惨,安裝第三方庫吭敢。安裝完成之后,雙擊打開此處的項(xiàng)目文件暮芭。

3. 然后在左側(cè)的項(xiàng)目導(dǎo)航區(qū)鹿驼,打開視圖控制器的代碼文件欲低。

4. 現(xiàn)在開始編寫代碼,創(chuàng)建一個(gè)日歷控件蠢沿。

5. 首先在當(dāng)前的類文件中伸头,引入已經(jīng)安裝的第三方類庫。

6. 添加一個(gè)日歷菜單視圖變量舷蟀,和一個(gè)日歷視圖變量恤磷,作為當(dāng)前類的兩個(gè)屬性。日歷菜單視圖將位于日歷視圖的上方野宜,用來顯示日歷的星期扫步。

7. 設(shè)置當(dāng)前根視圖的背景顏色。

8. 然后對(duì)日歷菜單視圖匈子,進(jìn)行初始化操作河胎,并設(shè)置其顯示區(qū)域位于屏幕的上方。

9. 接著對(duì)日歷視圖進(jìn)行初始化操作虎敦,并設(shè)置其顯示區(qū)域游岳。

10. 設(shè)置日歷視圖的外觀代理、日歷代理和動(dòng)畫代理其徙,都是當(dāng)前的視圖控制器對(duì)象胚迫。

11. 設(shè)置日歷菜單視圖的菜單視圖代理,同樣是當(dāng)前的視圖控制器對(duì)象唾那。

12. 然后依次將兩個(gè)視圖添加到根視圖中访锻。

13. 添加一個(gè)方法,用來監(jiān)聽視圖控制器對(duì)它的子視圖進(jìn)行布局的事件闹获。

14. 當(dāng)監(jiān)聽到該事件時(shí)期犬,將依次提交對(duì)菜單視圖和日歷視圖的刷新。

15. 接著添加一個(gè)針對(duì)視圖控制器的擴(kuò)展避诽,并使其遵循日歷視圖協(xié)議和日歷菜單視圖協(xié)議龟虎。

16. 添加一個(gè)代理方法,用來設(shè)置日歷的模式沙庐。共有月模式和周模式兩種鲤妥。

17. 添加一個(gè)代理方法,用來設(shè)置將星期天轨功,作為一個(gè)星期的開始日期。

18. 該代理方法用來設(shè)置在一個(gè)星期當(dāng)中容达,每天的日期文字顏色古涧。

19. 在此設(shè)置當(dāng)該日為星期天時(shí),設(shè)置文字的顏色為紅色花盐,否則設(shè)置文字的顏色為黑色羡滑。

20. 添加一個(gè)代理方法菇爪,用來設(shè)置允許突出顯示某個(gè)日期。

21. 接著添加此代理方法柒昏,用來設(shè)置允許以動(dòng)態(tài)的方式進(jìn)行尺寸的縮放凳宙。

22. 添加一個(gè)代理方法,用來設(shè)置是否選中某個(gè)日期視圖职祷,此處使用隨機(jī)的方式來決定是否選中氏涩。

23. 添加一個(gè)代理方法,用來響應(yīng)某個(gè)日期被選中時(shí)的事件有梆。此時(shí)在控制臺(tái)輸出選中的日期是尖。

24. 此代理方法用來設(shè)置是否允許在日期的上方,顯示一個(gè)標(biāo)識(shí)符泥耀。

25. 添加一個(gè)代理方法饺汹,用來設(shè)置是否允許在日期的上方,顯示一個(gè)點(diǎn)標(biāo)識(shí)痰催。

26. 獲得當(dāng)前位置上的日期的天數(shù)兜辞。

27. 然后通過隨機(jī)函數(shù)生成一個(gè)0到30之間的數(shù)字。

28. 假如當(dāng)前位置上的日期的天數(shù)夸溶,和隨機(jī)數(shù)字相同時(shí)逸吵,則在此日期的位置顯示一個(gè)點(diǎn)標(biāo)識(shí)。

29. 其它的情況則不顯示點(diǎn)標(biāo)識(shí)蜘醋。

30. 添加一個(gè)代理方法胁塞,用來設(shè)置點(diǎn)標(biāo)識(shí)的顏色。

31. 在此同樣通過隨機(jī)函數(shù)压语,生成一個(gè)隨機(jī)的顏色啸罢。

32. 初始化一個(gè)隨機(jī)的顏色常量 。

33. 生成一個(gè)在1和3之間的隨機(jī)整數(shù)胎食。

34. 然后根據(jù)隨機(jī)整數(shù)進(jìn)行判斷扰才。

35. 根據(jù)隨機(jī)整數(shù)的值,返回不同長(zhǎng)度的顏色數(shù)組厕怜。

36. 接著添加一個(gè)代理方法衩匣,用來設(shè)置是否在日期上顯示高亮效果。

37. 添加一個(gè)代理方法粥航,設(shè)置點(diǎn)標(biāo)識(shí)的尺寸琅捏。

38. 繼續(xù)添加一個(gè)代理方法,設(shè)置星期的顯示方式递雀,此處設(shè)置為縮寫方式柄延。共有正常、縮寫和超級(jí)縮寫三種樣式可以選擇缀程。

39. 該代理方法搜吧,用來設(shè)置選區(qū)視圖的貝塞爾路徑市俊。

40. 在此返回日期視圖的顯示區(qū)域,作為選區(qū)視圖的路徑滤奈。

41. 添加一個(gè)代理方法摆昧,不允許顯示自定義的單獨(dú)選區(qū)。

42. 添加一個(gè)代理方法蜒程,用來設(shè)置顯示在日期上的輔助視圖绅你。

43. 初始化一個(gè)輔助視圖,設(shè)置其顯示區(qū)域和日期視圖相同搞糕,并且形狀為圓形勇吊。

44. 設(shè)置輔助視圖的填充顏色為淺灰色,然后返回該輔助視圖窍仰。

45. 添加一個(gè)代理方法汉规,用來設(shè)置是否允許在日期視圖上,顯示一個(gè)輔助視圖驹吮。

46. 設(shè)置當(dāng)日期視圖中的日期為當(dāng)日的天數(shù)時(shí)针史,顯示輔助視圖,否則不顯示碟狞。

47. 繼續(xù)添加一個(gè)代理方法啄枕,用來設(shè)置補(bǔ)充視圖。該補(bǔ)充視圖將被用來在所有屬于星期五的天數(shù)位置族沃,繪制一個(gè)圓環(huán)频祝。

48. 初始化一個(gè)圓周率常數(shù)。

49. 接著初始化一個(gè)浮點(diǎn)類型的常量脆淹,作為圓環(huán)的間距常空。

50. 初始化另一個(gè)浮點(diǎn)類型的常量,作為圓環(huán)的寬度盖溺。

51. 初始化一個(gè)浮點(diǎn)類型的常量漓糙,作為圓環(huán)在垂直方向上的偏移距離。

52. 創(chuàng)建一個(gè)圖形層變量烘嘱,用來繪制圓環(huán)昆禽。

53. 設(shè)置圓環(huán)路徑的寬度為1。

54. 設(shè)置圓環(huán)的線條顏色為紫色蝇庭。

55. 在此創(chuàng)建一個(gè)和日期視圖相比醉鳖,具有相同顯示區(qū)域的視圖對(duì)象。

56. 通過計(jì)算獲得圓環(huán)的直徑數(shù)據(jù)哮内。

57. 然后通過直徑算出半徑的大小盗棵。

58. 從而創(chuàng)建一個(gè)矩形區(qū)域,用來繪制圓環(huán)形狀。

59. 對(duì)圖形層進(jìn)行初始化操作漾根,并將該層添加到新建視圖的層中。

60. 設(shè)置層的填充顏色為無色鲫竞。

61. 接著設(shè)置層的線條寬度和描邊顏色兩個(gè)屬性辐怕。

62. 初始化一個(gè)浮點(diǎn)常量,作為圓環(huán)的線寬嵌入值从绘。

63. 通過調(diào)用矩形區(qū)域?qū)ο蟮南嚓P(guān)方法寄疏,獲得和該矩形區(qū)域具有相同中心點(diǎn),但是更大的另一個(gè)矩形區(qū)域僵井。

64. 接著獲得該區(qū)域的中心點(diǎn)坐標(biāo)陕截。

65. 獲得繪制圓環(huán)的起點(diǎn)角度。

66. 然后生成繪制圓環(huán)的結(jié)束點(diǎn)角度批什。

67. 接著通過中心點(diǎn)农曲、半徑、起點(diǎn)角度驻债、結(jié)束點(diǎn)角度以及是否順時(shí)針等數(shù)據(jù)乳规,創(chuàng)建一個(gè)環(huán)形路徑。

68. 設(shè)置層的路徑為環(huán)形路徑合呐,并設(shè)置層的顯示區(qū)域暮的,和當(dāng)前的日期層保持相同。

69. 最后返回設(shè)置好的附加視圖淌实。

70. 接著添加一個(gè)代理方法冻辩,用來設(shè)置在何種情況下,允許顯示輔助視圖拆祈。

71. 在此設(shè)置當(dāng)某處的日期的天數(shù)為周五時(shí)恨闪,在該日期位置顯示一個(gè)輔助視圖,否則不會(huì)顯示輔助視圖缘屹。

72. 設(shè)置星期文本的顏色為黑色凛剥。

73. 添加最后一個(gè)代理方法,設(shè)置星期文本的背景顏色為無色轻姿。接著點(diǎn)擊左上角的[編譯并運(yùn)行]按鈕犁珠,啟動(dòng)模擬器預(yù)覽項(xiàng)目。

74. 在彈出的模擬器中互亮,觀察當(dāng)天日期的外觀樣式犁享。然后點(diǎn)擊選擇某個(gè)日期,并觀察控制臺(tái)的日志輸出豹休。

75. 接著點(diǎn)擊下個(gè)月份的第一天炊昆,這樣將自動(dòng)跳轉(zhuǎn)到下個(gè)月份。

76. 在左側(cè)的圓點(diǎn)處按下手指,并向右側(cè)拖動(dòng)凤巨,可以切換至上個(gè)月份视乐。

77. 使用相同的方式,向左側(cè)拖動(dòng)敢茁,切換至下個(gè)月份佑淀。

78. 最后點(diǎn)擊此處的[停止]按鈕,關(guān)閉模擬器彰檬,并結(jié)束本節(jié)課程伸刃。

本文整理自:《app開發(fā)中的神兵利器》,真正的[手把手]教學(xué)模式逢倍,用最快的速度上手iOS開發(fā)捧颅,蘋果商店App Store免費(fèi)下載:https://itunes.apple.com/cn/app/id1209739676,或掃描本頁底部的二維碼较雕。課程配套素材下載地址:資料下載

apps8 2.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碉哑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亮蒋,更是在濱河造成了極大的恐慌谭梗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宛蚓,死亡現(xiàn)場(chǎng)離奇詭異激捏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凄吏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門远舅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痕钢,你說我怎么就攤上這事图柏。” “怎么了任连?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蚤吹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我随抠,道長(zhǎng)裁着,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任拱她,我火速辦了婚禮二驰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秉沼。我一直安慰自己桶雀,他們只是感情好矿酵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矗积,像睡著了一般全肮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棘捣,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天倔矾,我揣著相機(jī)與錄音,去河邊找鬼柱锹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛丰包,可吹牛的內(nèi)容都是我干的禁熏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邑彪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瞧毙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寄症,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤宙彪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后有巧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體释漆,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年篮迎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了男图。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甜橱,死狀恐怖逊笆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岂傲,我是刑警寧澤难裆,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站镊掖,受9級(jí)特大地震影響乃戈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亩进,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一偏化、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镐侯,春花似錦侦讨、人聲如沸驶冒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骗污。三九已至,卻和暖如春沈条,著一層夾襖步出監(jiān)牢的瞬間需忿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工蜡歹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屋厘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓月而,卻偏偏與公主長(zhǎng)得像汗洒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子父款,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 本節(jié)課將為您演示溢谤,如何制作一款漂亮的日歷。首先確保在您的項(xiàng)目中憨攒,已經(jīng)安裝了所需的第三方庫世杀,雙擊查看此處的Po...
    互動(dòng)教程網(wǎng)閱讀 2,610評(píng)論 1 0
  • -----國(guó)家博物館看非洲館陳列 兩個(gè)擊鼓人 迎著非洲原始的曠野 鼓槌:一對(duì)男人和女人 他們頭并頭 熱烈行走...
    放生的獵人閱讀 429評(píng)論 2 2
  • 2015-11-30 周一 晴 昨天買了任選9場(chǎng)的足彩,今天上午查了一下比分肝集,只猜對(duì)了5場(chǎng)——哭了一天瞻坝。 套用三國(guó)...
    韓日記閱讀 176評(píng)論 0 2
  • 最近在構(gòu)思長(zhǎng)篇,對(duì)只能時(shí)斷時(shí)續(xù)寫作的我是一個(gè)巨大的考驗(yàn)杏瞻。我一直是手機(jī)寫作的湿镀,我知道很多編輯看過我的文章都覺得短,只...
    嫵媚天成閱讀 126評(píng)論 0 0