熟用TableView

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.      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值