ユーザーが押す 2 つのボタンに基づいて上下にスクロールする をUITableView
含む があります。UIImageView
UITableView
には、テーブル内のすべての行が表示されない画面上の可視領域があります。
一度UIImageView
に1行ずつ上下しますが、残念ながら、ユーザーに表示されていない行に移動すると画面から消えます。
私がやりたいことは、ユーザーがUIImageView
画面外にある1行を上下に移動するたびに、テーブルを1行ずつ自動的に上下にスクロールさせることです。
最終的に、ユーザーがリストの最後に到達すると、ユーザーがテーブルの一番上にいる場合は、UIImageView
一番下にUITableView
移動します (つまり、一番最後の行に移動します)。つまり、 table を上にスクロールして、テーブルの最後の行を表示する必要があります。
逆もまた真である必要があります (つまり、UIImageView
がリストの一番下にある場合、下ボタンを押すと、ユーザーはテーブルの一番上に移動し、テーブルは自動的にリストの最初にスクロールする必要があります。テーブルの最初の行をユーザーに表示します)。
を移動するコードは次UIImageView
のUITableView
とおりです。
- (IBAction)buttonClicked:(id)sender {
if([sender tag] == 1){
if (_index.row == 0) {
_index = [NSIndexPath indexPathForRow:[_tableData count] - 1 inSection:_index.section];
//here is my code that controls the scrolling of the table
[_table scrollToRowAtIndexPath:_index atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
else
_index = [NSIndexPath indexPathForRow:_index.row - 1 inSection:_index.section];
[UIView animateWithDuration:.3 animations:^{
CGRect rect = [self.view convertRect:[_table rectForRowAtIndexPath:_index] fromView:_table];
CGFloat floatx = _imageView.frame.origin.x - rect.origin.x;
_imageView.frame = CGRectMake(rect.origin.x + floatx, rect.origin.y, _imageView.frame.size.width, _imageView.frame.size.height);
}];
}
else if([sender tag] == 2){
if (_index.row + 1 == [_tableData count]) {
_index = [NSIndexPath indexPathForRow:0 inSection:_index.section];
//here is my code that controls the scrolling of the table
[_table scrollToRowAtIndexPath:_index atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
else
_index = [NSIndexPath indexPathForRow:_index.row + 1 inSection:_index.section];
[UIView animateWithDuration:.3 animations:^{
CGRect rect = [self.view convertRect:[_table rectForRowAtIndexPath:_index] fromView:_table];
CGFloat floatx = _imageView.frame.origin.x - rect.origin.x;
_imageView.frame = CGRectMake(rect.origin.x + floatx, rect.origin.y, _imageView.frame.size.width, _imageView.frame.size.height);
}];
}
}
ここで私が間違っていることを誰かが見ることができますか?