我正在尝试索引表并在单击索引条目时滚动到正确的行。该表在每行中有一个字母A..Z。该指数也有A..Z。向下滚动时可以正常工作。例如,当我点击索引中的“H”时,表格会滚动,以便H是第一行,但现在当我点击“A”时,屏幕上有一半的空白区域,然后一行显示在中间。这是为什么?由于我是新会员,我无法发布图片。
我只有一个部分。我为部分计数返回1,为部分行计数返回26。
我在方法sectionForSectionIndexTitle中的代码是
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
NSLog(@"getting called %d",index);
int position;
switch (index) {
case 0:
position=0;
break;
case 1:
position=1;
break;
case 2:
position=2;
break;
case 3:
position=3;
break;
case 4:
position=4;
break;
case 5:
position=5;
break;
case 6:
position=6;
break;
case 7:
position=7;
break;
case 8:
position=8;
break;
case 9:
position=9;
break;
case 10:
position=10;
break;
case 11:
position=11;
break;
case 12:
position=12;
break;
case 13:
position=13;
break;
case 14:
position=14;
break;
case 15:
position=15;
break;
case 16:
position=16;
break;
case 17:
position=17;
break;
case 18:
position=18;
break;
case 19:
position=19;
break;
case 20:
position=20;
break;
case 21:
position=21;
break;
case 22:
position=22;
break;
case 23:
position=23;
break;
case 24:
position=24;
break;
case 25:
position=25;
break;
case 26:
position=26;
break;
default:
position=1;
break;
}
NSLog(@"scrolling to %d",position);
[tableView reloadInputViews];
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:position inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
return index;
}
答案 0 :(得分:3)
试试这个...... 我这样做..
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:position inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
答案 1 :(得分:0)
K来自问题的内容
UITableView
数据源和代理Indexpath有两个参数行和部分
NSIndexPath *index=[NSIndexPath indexPathForRow:position inSection:section]
[tableView scrollToRowAtIndexPath:index atScrollPosition:UITableViewScrollPositionTop animated:YES];
在你的 didSelectRowAtIndexpath方法您将拥有indexpath并在单击时滚动 因此
[tableView scrollToRowAtIndexPath:indexpath atScrollPosition:UITableViewScrollPositionTop animated:YES];
足以实现这个目标