1.17 另一個自定義的CVCalendar日曆 [iOS開發中的神兵利器]

weixin_33806914發表於2018-04-11

1. 本節課將為您演示另一款第三方的日曆類庫。首先確保在您的專案中,已經安裝了所需的第三方庫,雙擊檢視此處的Pod配置檔案。

2. 根據配置檔案中的相關設定,安裝第三方庫。安裝完成之後,雙擊開啟此處的專案檔案。

3. 然後在左側的專案導航區,開啟檢視控制器的程式碼檔案。

4. 現在開始編寫程式碼,建立一個日曆控制元件。

5. 首先在當前的類檔案中,引入已經安裝的第三方類庫。

6. 新增一個日曆選單檢視變數,和一個日曆檢視變數,作為當前類的兩個屬性。日曆選單檢視將位於日曆檢視的上方,用來顯示日曆的星期。

7. 設定當前根檢視的背景顏色。

8. 然後對日曆選單檢視,進行初始化操作,並設定其顯示區域位於螢幕的上方。

9. 接著對日曆檢視進行初始化操作,並設定其顯示區域。

10. 設定日曆檢視的外觀代理、日曆代理和動畫代理,都是當前的檢視控制器物件。

11. 設定日曆選單檢視的選單檢視代理,同樣是當前的檢視控制器物件。

12. 然後依次將兩個檢視新增到根檢視中。

13. 新增一個方法,用來監聽檢視控制器對它的子檢視進行佈局的事件。

14. 當監聽到該事件時,將依次提交對選單檢視和日曆檢視的重新整理。

15. 接著新增一個針對檢視控制器的擴充套件,並使其遵循日曆檢視協議和日曆選單檢視協議。

16. 新增一個代理方法,用來設定日曆的模式。共有月模式和周模式兩種。

17. 新增一個代理方法,用來設定將星期天,作為一個星期的開始日期。

18. 該代理方法用來設定在一個星期當中,每天的日期文字顏色。

19. 在此設定當該日為星期天時,設定文字的顏色為紅色,否則設定文字的顏色為黑色。

20. 新增一個代理方法,用來設定允許突出顯示某個日期。

21. 接著新增此代理方法,用來設定允許以動態的方式進行尺寸的縮放。

22. 新增一個代理方法,用來設定是否選中某個日期檢視,此處使用隨機的方式來決定是否選中。

23. 新增一個代理方法,用來響應某個日期被選中時的事件。此時在控制檯輸出選中的日期。

24. 此代理方法用來設定是否允許在日期的上方,顯示一個識別符號。

25. 新增一個代理方法,用來設定是否允許在日期的上方,顯示一個點標識。

26. 獲得當前位置上的日期的天數。

27. 然後通過隨機函式生成一個0到30之間的數字。

28. 假如當前位置上的日期的天數,和隨機數字相同時,則在此日期的位置顯示一個點標識。

29. 其它的情況則不顯示點標識。

30. 新增一個代理方法,用來設定點標識的顏色。

31. 在此同樣通過隨機函式,生成一個隨機的顏色。

32. 初始化一個隨機的顏色常量 。

33. 生成一個在1和3之間的隨機整數。

34. 然後根據隨機整數進行判斷。

35. 根據隨機整數的值,返回不同長度的顏色陣列。

36. 接著新增一個代理方法,用來設定是否在日期上顯示高亮效果。

37. 新增一個代理方法,設定點標識的尺寸。

38. 繼續新增一個代理方法,設定星期的顯示方式,此處設定為縮寫方式。共有正常、縮寫和超級縮寫三種樣式可以選擇。

39. 該代理方法,用來設定選區檢視的貝塞爾路徑。

40. 在此返回日期檢視的顯示區域,作為選區檢視的路徑。

41. 新增一個代理方法,不允許顯示自定義的單獨選區。

42. 新增一個代理方法,用來設定顯示在日期上的輔助檢視。

43. 初始化一個輔助檢視,設定其顯示區域和日期檢視相同,並且形狀為圓形。

44. 設定輔助檢視的填充顏色為淺灰色,然後返回該輔助檢視。

45. 新增一個代理方法,用來設定是否允許在日期檢視上,顯示一個輔助檢視。

46. 設定當日期檢視中的日期為當日的天數時,顯示輔助檢視,否則不顯示。

47. 繼續新增一個代理方法,用來設定補充檢視。該補充檢視將被用來在所有屬於星期五的天數位置,繪製一個圓環。

48. 初始化一個圓周率常數。

49. 接著初始化一個浮點型別的常量,作為圓環的間距。

50. 初始化另一個浮點型別的常量,作為圓環的寬度。

51. 初始化一個浮點型別的常量,作為圓環在垂直方向上的偏移距離。

52. 建立一個圖形層變數,用來繪製圓環。

53. 設定圓環路徑的寬度為1。

54. 設定圓環的線條顏色為紫色。

55. 在此建立一個和日期檢視相比,具有相同顯示區域的檢視物件。

56. 通過計算獲得圓環的直徑資料。

57. 然後通過直徑算出半徑的大小。

58. 從而建立一個矩形區域,用來繪製圓環形狀。

59. 對圖形層進行初始化操作,並將該層新增到新建檢視的層中。

60. 設定層的填充顏色為無色。

61. 接著設定層的線條寬度和描邊顏色兩個屬性。

62. 初始化一個浮點常量,作為圓環的線寬嵌入值。

63. 通過呼叫矩形區域物件的相關方法,獲得和該矩形區域具有相同中心點,但是更大的另一個矩形區域。

64. 接著獲得該區域的中心點座標。

65. 獲得繪製圓環的起點角度。

66. 然後生成繪製圓環的結束點角度。

67. 接著通過中心點、半徑、起點角度、結束點角度以及是否順時針等資料,建立一個環形路徑。

68. 設定層的路徑為環形路徑,並設定層的顯示區域,和當前的日期層保持相同。

69. 最後返回設定好的附加檢視。

70. 接著新增一個代理方法,用來設定在何種情況下,允許顯示輔助檢視。

71. 在此設定當某處的日期的天數為週五時,在該日期位置顯示一個輔助檢視,否則不會顯示輔助檢視。

72. 設定星期文字的顏色為黑色。

73. 新增最後一個代理方法,設定星期文字的背景顏色為無色。接著點選左上角的[編譯並執行]按鈕,啟動模擬器預覽專案。

74. 在彈出的模擬器中,觀察當天日期的外觀樣式。然後點選選擇某個日期,並觀察控制檯的日誌輸出。

75. 接著點選下個月份的第一天,這樣將自動跳轉到下個月份。

76. 在左側的圓點處按下手指,並向右側拖動,可以切換至上個月份。

77. 使用相同的方式,向左側拖動,切換至下個月份。

78. 最後點選此處的[停止]按鈕,關閉模擬器,並結束本節課程。

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

5981183-dbb5a7562b6b08f2.png
apps8 2.png

相關文章