当前位置: 代码迷 >> 综合 >> UITableView——点击某一行移动到指定位置
  详细解决方案

UITableView——点击某一行移动到指定位置

热度:84   发布时间:2023-12-12 02:20:23.0

 

 选中某一行后想要tableView自动滚动使得选中行始终处于table的top、middle或者bottom,使用以下方法中的一个就可以实现:

[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

//    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionBottom animated:YES];

 

h文件:
@interface GKViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>{BOOL bCheck[50];
}
m文件:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{return 50;
}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{if (bCheck[indexPath.row]) {return 100;}else{return 50;}//    return 50;
}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{static NSString *CellIdentifier = @"Cell";UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];if(cell == nil){cell= [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;}cell.textLabel.text=[NSString stringWithFormat:@"%@%i",@"话题",indexPath.row];return cell;
}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{[self initCheck];bCheck[indexPath.row] = YES;[tableView reloadData];bCheck[indexPath.row] = NO;[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
//    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionBottom animated:YES];
}

  相关解决方案