我正在尝试将 UITableView 与 UILabel 同步,以确保它们显示相同的数据;当然,最终情况会有所不同,但为了测试,这是我需要做的。
看到箭头了吗?我希望那个中间单元格(来自 px44-88)在 UILabel 中显示 cell.textLabel.text 当它是“中间单元格”时。
我尝试使用 - (void)tableViewUITableView *)tableView willDisplayCellUITableViewCell *)cell forRowAtIndexPathNSIndexPath *)indexPath 但我遇到了很多问题,我想我会来这里询问是否有人有更好的方法来做到这一点。我不确定它是否会有所作为,但我正在使用 NSFetchedResultsController 来填充我的 UITableView 。
Best Answer-推荐答案 strong>
UITableView 是 UIScrollView 的子类,所以可能你可以使用 UIScrollViewDelegate
- (void)scrollViewDidScrollUIScrollView *)scrollView
成员来检测当前哪个单元格在中间。
即假设您有一个没有部分的普通表格,并且 tableView 是表格的导出,标签是标签的导出,这将在您的 Controller 中起作用:
- (void)scrollViewDidScrollUIScrollView *)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 方法获取非普通表格的可见单元格布局,并使用它来检测表格中间的单元格。
关于objective-c - UITableView 中心单元格详细信息,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8557596/
|