iOS-Objective-C教程

持續更新~

iOS-OC-Tutorial

學習完iOS-Swfit基礎開發之後,熟悉iOS-Objective C編程。該教程需要具有一定iOS基礎的學習者,Let’s Go!

個人推薦的學習方法:
跟着有經驗的開發者的項目走,攻克每一個小版塊,從UIButton到UITableview、UICollectionView到更深入的KVC、KVO。
研究別人項目的源碼,結合博客(博客園 CSDN Stack Overflow 掘金)+Apple開發者文檔

1.UITableView

第一個學習項目,iOS開發中的重要組件UITableview,學完這個課程你可以收貨

  • 瞭解數據源協議與代理協議
  • Xib的基礎使用
  • UITableview中重要的indexPath屬性(section、row)
  • 自定義UITableviewCell
  • UITableView中row的增、刪、移動操作

Knowledge

  1. UITableView 作爲視圖,只負責展示,不管理數據。需要開發者手動實現datasource協議,爲UITableView的cell提供數據。
  2. UITableViewCell是UITableView的核心內容,用於管理數據和數據在界面上的展示。系統提供基類UITableViewCell,我們可以定製需要的cell(繼承自UITableViewCell)。UITableView的複用機制最大化的實現資源利用。
    例如我們頁面上只能展示15個cell的內容,想要獲取更多的內容通過觸摸滑動展示。cell的內容來源於數據庫,數據庫裏面可能存儲着千萬個cell的數據。應用不可能將數據庫中的每條數據都生成一個cell供tableview使用,那樣的內存開銷是巨大的。工程師便設計了複用的機制。簡單說就是當滑動 tableview 的時候,離開視圖的cell會被放到複用池中,當下一個視圖需要顯示時,會先查看複用池是否有可複用的cell,如果有可複用的cell就取出來實現複用,沒有可複用的cell就創建新的cell。

Tips

UITableview的執行順序

  1. numberOfSectionsInTableView 確定分區
  2. numberOfRowsInSection 確定行
  3. hieghtForRowAtIndexPath 確定cell高度
  4. cellForRowAtIndexPath 加載
  5. heightForRowAtIndexPath 確定cell高度
  6. cellForRowAtIndexPath 加載

heightForRowAtIndexPath需要調用很多次,性能的優化都在此方法上面。如果cell大小固定無需使用該方法通過tableview.rowhight屬性設置。

xib自定義Cell

  1. 創建繼承自UITableviewCell的子類
  2. 創建xib文件
    • 拖拽UITableviewCell
    • 修改cell的class
    • 設置reuseIdentifier **static** NSString *ID = @"QDCell";
    • 拖拽子控件到cell
  3. 在控制器中
    • 註冊nib文件 [tableView registerNib:[UINib nibWithNibName:ID bundle:**nil**] forCellReuseIdentifier:ID];
    • 利用reuseIndentifier找到cell
    • cell傳遞數模型數據
  4. 在cell中
    • xib子控件連線類擴展
    • awakeFromNib 從xib加載完畢就會調用 cell初始化ui
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章