self.title = @"分组表视图";
UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 568) style:UITableViewStylePlain];
//设置tableView数据源代理
tableView.dataSource =self;
//设置tableView的代理
tableView.delegate = self;
[self.view addSubview:tableView];
// 设置tableView的头视图和尾部视图:这能设置头部视图的高度,x y 方向的坐标是改变不了的,宽度也无法修改,与tableView的宽度一样
UIView *headerView =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
tableView.tableHeaderView= headerView;
UIView *fooderView =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
tableView.tableFooterView= fooderView;
// 设置组的头视图和尾部视图的高度
tableView.sectionHeaderHeight = 50;
tableView.sectionFooterHeight = 40;
//设置每个cell的高度
tableView.rowHeight = 50;
// 每组头视图的高度
-(CGFloat)tableView:(UITableView*)tableViewheightForHeaderInSection:(NSInteger)section;
// 每组尾部的高度
-(CGFloat)tableView:(UITableView*)tableViewheightForFooterInSection:(NSInteger)section;
// 设置tableView每一行cell的高度
-(CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath;
//设置分割线的颜色
tableView.separatorColor =[UIColor redColor];
// 设置分割线的样式,默认有UITableViewCellSeparatorStyleSingleLine
tableView.separatorStyle =UITableViewCellSeparatorStyleSingleLine;
// 设置背景视图和背景颜色
tableView.backgroundColor= [UIColor grayColor];
tableView.backgroundView =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@“bj.jpg"]];
#pragma mark - UITableView 的协议方法.
// 设置tableView的组数,如果不写默认创建一组
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
// 设置每一组单元格的个数
-(NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section;
// 创建单元格UITableViewCell,也就是tablView显示的每一行的视图
-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath;
UITableViewCell*cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
// 设置每组头视图的标题
-(NSString*)tableView:(UITableView*)tableViewtitleForHeaderInSection:(NSInteger)section;
// 设置每组尾部视图的标题
-(NSString*)tableView:(UITableView*)tableViewtitleForFooterInSection:(NSInteger)section;
// 自定义组的头视图
-(UIView*)tableView:(UITableView*)tableViewviewForHeaderInSection:(NSInteger)section;
//自定义组的尾部视图
-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section;
// 设置选择时的样式
cell.selectionStyle = UITableViewCellSelectionStyleGray;
// 设置选中后的背景视图
cell.selectedBackgroundView = view;
// 设置辅助图标样式
cell.accessoryType = UITableViewCellAccessoryDetailButton;
// 将自定义的视图添加到contentaView 上,不要直接添加到cell上
[cell.contentViewaddSubview:titleLabel];
// 创建一个位置
NSIndexPath*indexPath = [NSIndexPath indexPathForItem:1 inSection:2]。
// 获取指定位置的cell
UITableViewCell *cell= [_tableView cellForRowAtIndexPath:indexPath];
//当前在屏幕上显示的所有cell visibleCells
NSArray *cellArray = [_tableView visibleCells];
// 获得当前显示在屏幕的cell的所有indexPath indexPathsForVisibleRows
NSArray *indexPathArray = [_tableView indexPathsForVisibleRows];
// 滚动到指定位置的cell
[_tableView scrollToRowAtIndexPath:indexPathatScrollPosition:UITableViewScrollPositionBottom animated:YES];
// 刷新tableView, 也就是重新调用所有实现的协议方法
[_tableView reloadData];
// 刷新指定indexPath的cell
[_tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
// 刷新指定section(组)
NSIndexSet *indexSet =[NSIndexSet indexSetWithIndex:0];
[_tableViewreloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];
// 添加索引视图
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return@[@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H"];
}
// 设置索引视图文字的颜色
tableView.sectionIndexColor = [UIColor whiteColor];
// 索引视图的背景颜色
tableView.sectionIndexBackgroundColor = [UIColor grayColor];
// 点击索引视图后调用的方法,包含点击索引位置的标题和位置
-(NSInteger)tableView:(UITableView*)tableViewsectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;
// cell将要在屏幕上显示的时候调用
-(void)collectionView:(UICollectionView*)collectionViewwillDisplayCell:(UICollectionViewCell*)cell forItemAtIndexPath:(NSIndexPath *)indexPath;
// cell结束在屏幕上显示的时候调用
-(void)collectionView:(UICollectionView*)collectionViewdidEndDisplayingCell:(UICollectionViewCell*)cellforItemAtIndexPath:(NSIndexPath *)indexPath;
// 自定义cell 的编辑模式
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableVieweditingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
returnUITableViewCellEditingStyleDelete;
}
// 设置tableViewCell 是否可以移动
-(BOOL)tableView:(UITableView*)tableViewcanMoveRowAtIndexPath:(NSIndexPath *)indexPath;
// 移动cell时,调用此方法
-(void)tableView:(UITableView*)tableViewmoveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath*)toIndexPath {
// 交换数组两个元素的位置
[_mutableArray exchangeObjectAtIndex:fromIndexPath.rowwithObjectAtIndex:toIndexPath.row];
// 设置tableView 的cell为可编辑状态
-(BOOL)tableView:(UITableView*)tableViewcanEditRowAtIndexPath:(NSIndexPath *)indexPath;
// 设置tableView 的cell为可编辑状态
-(BOOL)tableView:(UITableView*)tableViewcanEditRowAtIndexPath:(NSIndexPath *)indexPath;
//删除指定的cell
[tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationFade];
// 单元格复用 dequeueReusableCellWithIdentifier
static NSString *indentify = @"newCell";
UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:indentify];
if (cell == nil) {
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentify];
}
// 1、注册普通类的cell
[self.tableView registerClass:[UITableViewCell class]forCellReuseIdentifier:@"newCell"];
NewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"newCell"forIndexPath:indexPath];
// 2、注册xib 的cell
UINib *nib = [UINib nibWithNibName:@"NewCell" bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier:@“newCell"];
NewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"newCell"forIndexPath:indexPath];
//3、故事版不许要注册。就这三种情况
// 加载xib文件创建的cell应该使用这种方式
= [[[NSBundlemainBundle] loadNibNamed:@"FontsCell" owner:self options:nil]lastObject];
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier;
133.