テーブルのインデックスを作成し、インデックス エントリがクリックされたときに正しい行にスクロールしようとしています。テーブルには、A..Z の文字が各行に 1 つずつあります。インデックスにはA..Zもあります。下にスクロールしながら動作します。たとえば、インデックスの「H」をクリックすると、H が最初の行になるようにテーブルがスクロールしますが、「A」をクリックすると、画面の半分に空白があり、行が中央に表示されます。何故ですか?私は新しいメンバーなので、写真を投稿することはできません。
セクションは 1 つしかありません。セクション数には 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;
}