2

我試圖將UITableViewUILabel同步以確保它們顯示相同的數據;當然,事情最終會有所不同,但爲了測試,這是我需要做的。UITableView Center Cell Details

enter image description here

見箭頭?當它是「中間細胞」時,我希望中間細胞(來自px44-88)在UILabel中顯示cell.textLabel.text

我嘗試過使用- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath,但我遇到了很多問題,我想我會來問問是否有人有更好的方法來做到這一點。我不確定它是否會有所作爲,但我正在使用NSFetchedResultsController填充我的UITableView

回答

2

的UITableView是的UIScrollView的子類,所以也許你可以使用UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

成員,以檢測哪些細胞是目前在中間。

I.e.假設你有沒有部分普通表,的tableView是表的出口,標籤是標籤的出口,比在你的控制器這將功能將工作:

- (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方法來獲取非普通表格的可見單元格的佈局,並使用它來檢測表格中間的單元格。

+0

你能提供更多細節嗎? – Baub 2011-12-19 14:02:44

相關問題