2009-03-26 6 views
16

내 목표는 UITableView의 경계에 다다 랐다가 덮히거나 노출 될 때 UITableViewCells를 페이드 인/아웃시키는 것입니다.스크롤 할 때 UITableViewCell의 좌표를 결정하십시오.

내가 시도한 접근 방식은 스크롤 이벤트 중에 UITableViewCell의 좌표를 가져 오는 것입니다. 문제는 모든 셀이 0, 0에있는 것 같습니다. 좌표를 부모 테이블과 뷰로 변환하려고 시도했지만 여전히 0,0에서 나온다.

일반적으로 누군가가 좌표를 얻는 방법을 알고 있거나 자신의 위치에 따라 UITableViewCells를 페이드 인하는 더 좋은 방법을 알고 있다면 당신이 가질 수있는 조언에 크게 감사드립니다. 시간에 대한

감사합니다, 조엘

+0

나도 똑같은 문제를 겪었습니다. UI에서도 프레임의 너비와 높이가 있지만 결과는 x, y, 너비, 높이에 대해 0, 0, 0, 0을 반환했습니다. – RainCast

답변

60

첫 단계는

CGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath];

가있는 tableView 내의 셀의 CGRect보고되는 사용하는 것이다. 그러나 tableView 스크롤 같이이 값은 변경되지 않습니다. 테이블의 첫 번째 행에 상대적인 위치이며 첫 번째 행은 표시되지 않습니다. 화면에 셀의 위치를 ​​얻으려면

CGRect rect = [tableView convertRect:rectInTableView toView:[tableView superview]];

그래서 다음 줄이 모든

CGRect rect = [tableView convertRect:[tableView rectForRowAtIndexPath:indexPath] toView:[tableView superview]]; 을 수행하여 좌표계 superviews로 변환해야합니다.

+0

Thx는 여전히 매력처럼 작동합니다! –

+0

UICollectionView의 기능은 무엇입니까? –

+0

이것은 나를 위해 작동하지 않습니다. – Zigglzworth

0

나는 당신이보기에 프레임 상대를보고있다, 그래서 세포가 jQuery과의 '세포 크기의'서브 뷰 내에서 개최됩니다 생각한다.

실제 답변이 없지만 UIScrollView의 위임 클래스 인 UIScrollViewDelegate를 확인하는 것이 좋습니다. 그것은 – scrollViewDidScroll:에 응답하고 수동으로 오프셋을 계산할 수 있습니다. UIScrollView는 UITableView의 수퍼 클래스입니다.

UIView의 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 방법을 사용하여 점 (원점 등)을 다른보기의 좌표로 변환 할 수 있습니다.

3

상단 및 하단이 반투명하지 않은 UIImageView에서 부분적으로 투명한 그래디언트 PNG가있는 오버레이를 왜 사용하지 않으시겠습니까?

표 스크롤로 셀을 그리는 것이 큰 성과를 거둘 것입니다.

2

당신은 어떤 주어진 셀의 RECT를 얻을 수

- (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath; 

를 호출 할 수 있습니다. 이것은 rect 내의 원점 구조체의 좌표를 포함합니다.

관련 문제