2010-04-20 143 views
10

如何獲得UITableViewCell的矩形大小?如何獲得UITableViewCell的矩形大小?

我想每一個用戶點擊一個細胞的時間來顯示彈出懸停,想彈出懸停出現在每一個細胞中心:

[replyPopover presentPopoverFromRect:CGRectMake(77, 25, 408, 68) 
           inView:self.view 
      permittedArrowDirections:UIPopoverArrowDirectionDown 
          animated:YES]; 

回答

38

不得不近日做到這一點。您需要使用[tableView rectForRowAtIndexPath]

但是,能夠吸引你的一件事是,當你滾動UITableView時,你需要考慮偏移量(例如報告其y位置爲3000像素當然意味着3000從頂部UITableView - 屏幕上不是3000像素)。

除此之外,它自然會出現在單元格的頂部,因此您需要將單元格高度的一半添加到計算中。

此代碼的工作很適合我:

CGRect frame = [tableView rectForRowAtIndexPath:indexPath]; 
CGPoint yOffset = self.tableView.contentOffset; 
[self.popoverController presentPopoverFromRect:CGRectMake(frame.origin.x, (frame.origin.y + 45 - yOffset.y), frame.size.width, frame.size.height) 

在我的情況下,每個單元爲90個像素高,因此「+45」位。用你自己的細胞高度代替一半。

+0

這是一個很好的解決方案! – 2010-04-20 15:52:03

+0

這非常有幫助。我揉了一個錯誤的,我正在破解我的頭[[tableView cellForRowAtIndexPath:indexPath] height] - 你的解決方案是我真正需要的。謝謝一堆! – Veeru 2012-04-23 09:38:52