相信做過iOS的程序員,最熟悉的控件一定少不了UITableView,最常用的控件也一定少不了UITableView!
今天分享一下自己對UITableView的實現大體思路,和整理出來的學習筆記!
1> UITableView的所有數據都是由數據源(dataSource)提供的,所以要想在UITableView展示數據,必須設置UITableView的dataSource數據源對象
2> 要想當UITableView的dataSource對象,必須遵守UITableViewDataSource協議,實現相應的數據源方法
3> 當UITableView想要展示數據的時候,就會給數據源發送消息(調用數據源方法),UITableView會根據方法返回值決定展示怎樣的數據
1> 先調用數據源的
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
得知一共有多少組
2> 然后調用數據源的
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
得知第section組一共有多少行
3> 然后調用數據源的
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
得知第indexPath.section組 第indexPath.row 行顯示怎樣的cell(顯示什么內容)
1> 一共有多少組
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
2> 第section組一共有多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
3> 第indexPath.section組 第indexPath.row行顯示怎樣的cell(顯示什么內容)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
4> 第section組顯示怎樣的頭部標題
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
5> 第section組顯示怎樣的尾部標題
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
選中了UITableView的某一行
某一行的高度
第section分區頭部的高度
第section分區尾部的高度
5.- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
第section分區頭部顯示的視圖
第section分區尾部顯示的視圖
設置每一行的等級縮進(數字越小,等級越高)
1> 修改模型數據
2> 刷新表格
- reloadData
整體刷新(每一行都會刷新)
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
局部刷新
清澈Saup
新聞熱點
疑難解答