2010-04-20 6 views
10

UITableViewCell의 rect 크기를 어떻게 얻을 수 있습니까? UITableViewCell의 rect 크기를 얻는 방법?

나는 팝 호버에게 사용자가 셀을 클릭 할 때마다 표시하는 것을 시도하고, 모든 세포를 중심으로하여 표시 팝업 호버 싶습니다 :

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

답변

38

는 최근이 작업을 수행했다. [tableView rectForRowAtIndexPath]을 사용해야합니다.

그러나, 당신을 잡을 수있는 것들 중 하나는 UITableView를 스크롤 할 때 오프셋 (즉, 3000 픽셀을 나타내는 y 위치를보고하는 것이 당연히 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) 

각 셀은 따라서 '45'비트, 90 개 픽셀 높았다. 자신의 셀 높이의 절반으로 대체하십시오.

+0

이것은 훌륭한 해결책입니다! –

+0

매우 도움이되었습니다. 나는 잘못된 것을 문지르고 있었고, 나는 내 머리를 부러 뜨 렸습니다. [[tableView cellForRowAtIndexPath : indexPath] height] - 솔루션은 실제로 필요한 것입니다. 무리 감사! – Veeru

관련 문제