2010-03-26 5 views
0

내 테이블보기의 각 셀에서 사용자가 오른쪽에서 슬라이드 아웃 할 수있는 막대를 갖고 싶습니다. 술집에서 나는 아이콘을 가질 계획이다. 그래서, 이렇게하려면 UITableViewCell 하위 클래스. 셀에서 drawRect를 구현했으며 거기에 이미 셀에 그라디언트와 배경색을 그렸습니다. 거기에서 CALayer를 만들고 프레임에 & 배경색을 지정하고 View 하위 레이어 배열에 하위 레이어로 추가 할 수 있습니다. 모든 작업을 수행 할 수 있으며 각 UITableViewCell에 내 레이어를 표시합니다.UITableViewCell의 CALayer 사용

사용자가 셀을 터치 할 때 감지 할 수 있도록 터치 이벤트를 셀에 추가 했으므로 테스트 할 때 사용자가 스 와이프 할 때 내 CALayer가 넓어집니다. 그러나 문제는 UITableView가 CALayer가 확장 된 셀을 스크롤하고 다시 사용할 때 CALayer를 다시 작성하지 않는다는 것입니다. 나는

[myLayer setNeedsDisplay] 

을 시도하고 drawLayer 사용했다 : 그 위임의 inContext 방법과 호출되지 않습니다. 또한 호출을 시도했다 setNeedsDisplay 셀에 내 UITableViewController 그 redraw 발생할 것이라고 기대하고 있지만 작동하지 않습니다.

내가 무엇이 실종되었는지 확실하지 않습니다. CoreGraphics & CoreAnimation을 처음 사용합니다. CoreAnimation Developers Guide를 읽었지만 뭔가 빠졌다고 가정합니다. 어떤 도움이라도 좋을 것입니다.

답변

0

CALayer에 닫힌 변형과 열린 변형을 추가했습니다. 테이블 뷰 컨트롤러의 scrollViewWillBeginDragging에서 보이는 모든 셀을 반복하고 닫힌 변환을 적용하여 메뉴를 다시 설정합니다.