UITableView является подклассом UIScrollView, поэтому, вероятно, вы можете использовать элемент UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
, чтобы определить, какая ячейка в настоящее время находится в середине.
Т.е. при условииу вас есть простая таблица без разделов, а tableView - это выход для таблицы, label - это выход для метки, и это будет работать в вашем контроллере:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
int row = (scrollView.contentOffset.y + tableView.frame.size.height / 2) / 44;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
label.text = cell.textLabel.text;
}
Конечно, вам нужновыполнить некоторую прокрутку, чтобы заставить его работать;)
Вы можете использовать метод visibleCells, чтобы получить расположение видимых ячеек для неплоской таблицы и использовать его для обнаружения ячейки в середине таблицы.