1.顯示多級菜單,默認顯示壹級.
2.可以通過點擊有子級的行展開菜單
3.通過復選框,改變選中狀態。狀態有全選、半選、未選中
4.可以擴展獲取當前所選的條目集合
1.首先根Datasource進行數據處理
2.生成壹個handler:MultilevelDataHandler 將數據處理邏輯在handle處理,將數據處理隔離
3.建立壹個數據模型,需要用壹些屬性記錄層級關系。最後我用了壹個字典來記錄原始的數據信息。
這裏是Demo的數據Json
4.將jsonDictionary轉化成數據模型的時候,把層級關系也壹並賦值。
由於數據層級數量的不確定性,這裏用遞歸的方式把每層的數據結構都放到其父類的subArray當中。
5.建壹個新的數組用來存儲要在tableView上展示的數據模型,按照父類子類,父類子類的順序排列。我這裏默認是把第壹級全部關閉展示的
6.實現菜單展開關閉功能
7.實現復選框功能
根據locationArray裏記錄的每壹層父級的序號,找到當前model的父級
由於層級數量的不確定性,所以多次使用到了遞歸的方式。要註意遞歸的結束條件,必須陷入死循環當中。
/YuTongHon/MultilevelMenuWithCheckbox