介紹:UITabelView是iOS開(kāi)發(fā)中最常用, 也是最靈活的控件.用途最廣泛.
兩種風(fēng)格:
UITableViewStylePlain 和 UITableViewStyleGrouped。
UITableView中只有行的概念,每一行就是一個(gè)UITableViewCell澳叉。UITableViewCell內(nèi)置好的控件contentView父控件
contentView = (textLabel,detailTextLabel)+ UIImage控件(imageView)分別用于容器、顯示內(nèi)容煤禽、詳情和圖片胰耗。
代理方法饭寺、數(shù)據(jù)源方法:<UITableviewDelegate,UITableviewDataSource>
- (NSInteger)numberOfSectionsInTableView:(UITableView )tableView? ? ? numberOfRowsInSection:(NSInteger)section{? ? ? ? return 5;}
//有多少組(默認(rèn)為1)
- (UITableViewCell )tableView cellForRowAtIndexPath:(? NSIndexPath identifily = @"cellIdentifily";? ? ? UITableViewCell )tableView willDisplayCell:(UITableViewCell )indexPath{? ? ? ? ? NSLog(@"willDisplayCell");}?//cell內(nèi)容設(shè)置胡控,屬性設(shè)置
- (void)tableView:(UITableView )cell forRowAtIndexPath:(NSIndexPath)tableView? ? didEndDisplayingHeaderView:(UIView )tableView? ? didEndDisplayingFooterView:(UIView )tableView? ? heightForRowAtIndexPath:(NSIndexPath )tableView? ? heightForHeaderInSection:(NSInteger)section{? ? ? ? ? ? ? return 15.0f;} ?//滑動(dòng)時(shí)扳剿,cell消失時(shí)調(diào)用
點(diǎn)擊cell時(shí)調(diào)用
-?(void)tableView:(UITableView?)tableView?didSelectRowAtIndexPath:(NSIndexPath?)indexPath;
離開(kāi)點(diǎn)擊時(shí)調(diào)用
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated;
重用機(jī)制->滾筒原理->只有固定->屏的視圖超出后重用這一屏的視圖一直滾動(dòng)循環(huán)使用只需更改上面的數(shù)據(jù) ?DataSource有兩個(gè)必須實(shí)現(xiàn)的代理方法沒(méi)有實(shí)現(xiàn)就會(huì)出現(xiàn)警告——>運(yùn)行崩潰
Required:
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section;//行數(shù)
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;//cell展示內(nèi)容
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;設(shè)置表頭的高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;//設(shè)置表尾的高度
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;//設(shè)置表頭的視圖
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;//設(shè)置表尾的視圖
- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;//設(shè)置表頭的標(biāo)題
- (nullable NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;//設(shè)置表尾的標(biāo)題
- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{return @"首頁(yè)";}//設(shè)置表頭的標(biāo)題
- (CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section{return100;}//設(shè)置表尾的高度
//每個(gè)分組上邊預(yù)留的空白高度
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{return20;}
刷新數(shù)據(jù)
刷新整個(gè)TableVIew[self.tableView reloadData];
1.刷新一個(gè)cell、
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];[self.tableViewreloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil]withRowAnimation:UITableViewRowAnimationFade];
2.刷新一個(gè)section
NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndex:0];[self.tableView reloadSections:indexSetwithRowAnimation:UITableViewRowAnimationFade];
轉(zhuǎn)載: