UITableView

目录 1.1 不显示无用cell 1.2 分割线位置调整 1.3 刷新局部 1.4 滚动到底部 1.5 详情按钮点击 1.6 头图放大功能 1.7 侧滑删除 1.8 索引

1.1 不显示无用cellself.tableView.tableFooterView = [[UIView alloc]init];

1.2 分割线位置调整[self.mainTableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];

1.3 刷新局部NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2]; [self.mainTableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];

1.4 滚动到底部NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:3]; [self.mainTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

1.5 详情按钮点击- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{NSLog(@"%ld",(long)indexPath.row); }

1.6 头图放大功能#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width //屏幕宽度#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height //屏幕高度#define IMAGE_HEIGHT 200 //屏幕高度@interface ViewController ()< UITableViewDataSource,UITableViewDelegate >@property (weak, nonatomic) IBOutlet UITableView *mainTableView; @property (nonatomic , strong)UIImageView *headerImageView; @property (nonatomic , strong)UIView *headerView; @end- (void)viewDidLoad {[super viewDidLoad]; self.headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, IMAGE_HEIGHT)]; UIImage *image = [UIImage imageNamed:@"1"]; self.headerImageView = [[UIImageView alloc]initWithFrame:CGRectMake (0, 0, SCREEN_WIDTH, IMAGE_HEIGHT)]; self.headerImageView.image = image; [self.headerView addSubview: self.headerImageView]; self.mainTableView.tableHeaderView = self.headerView; }- (void)scrollViewDidScroll:(UIScrollView *)scrollView{CGFloat yOffset = self.mainTableView.contentOffset.y; //向上偏移量变正 向下偏移量变负if (yOffset <= 0) {CGFloat factor = ABS(yOffset)+ IMAGE_HEIGHT; CGRect f = CGRectMake(-([[UIScreen mainScreen] bounds].size.width *factor/(IMAGE_HEIGHT)-[[UIScreen mainScreen] bounds].size.width)/2, -ABS(yOffset), [[UIScreen mainScreen] bounds].size.width*factor/ (IMAGE_HEIGHT), factor); self.headerImageView.frame = f; }else {CGRect f = _headerView.frame; f.origin.y = 0; _headerView.frame = f; self.headerImageView.frame = CGRectMake(0, f.origin.y, [[UIScreen mainScreen] bounds].size. width, 200); } }

1.7.1 侧滑删除- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; //return UITableViewCellEditingStyleInsert; }- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {if(editingStyle == UITableViewCellEditingStyleDelete){[self readButtonClicked:indexPath]; }}// 设置返回的字段名字 - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { return @"标为已读"; }1.7.2 自定义侧滑删除- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {UITableViewRowAction *deleteAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删 除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {NSLog(@"删除!"); }]; deleteAction.backgroundColor=[UIColor redColor]; UITableViewRowAction *otherAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"其他" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {NSLog(@"其他"); }]; otherAction.backgroundColor=[UIColor blueColor]; return @[deleteAction,otherAction]; }

1.8 索引//索引 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {NSMutableArray *arr = [NSMutableArray arrayWithCapacity:0]; for (int i=0; i < self.firstNumArray.count; i++) {[arr addObject:self.firstNumArray[i][0]]; }}//索引Index - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{return index; }

    推荐阅读