2010-05-04 3 views
0

uitableview의 색인이 실제로 사용되는시기를 알 수 있습니까? 애플 문서에서 어떤 메소드를 찾을 수는 없지만 다른 사람이 무엇을 알고 있는지 궁금해하고 있었다. 기본적으로 테이블 뷰에서 인덱스에서 선택된 섹션에 따라 변경되는 애니메이션을 만들고 싶습니다. 테이블 뷰 인덱스에 액세스하지 않고이를 수행하는 방법을 모릅니다.uitableview의 색인이 실제로 사용되는시기를 알 수 있습니까?

도움을 주시면 대단히 감사하겠습니다.

감사합니다.

답변

0
  1. 섹션 인덱스로부터 선택된 부분을 나타내는 NSInteger를 반환 -tableView:sectionForSectionIndexTitle:atIndex:UITableViewDataSource 위임 방법. 데이터 소스 대리자 (아마도 테이블 뷰 컨트롤러) 인 클래스에서이 메서드를 재정의하십시오.

  2. 보기 컨트롤러에서 속성을 설정합니다. NSIntegerselectedSectionIndex입니다. 이 값은 앞서 언급 한 델리게이트 메소드 내에서 설정됩니다.

  3. 마지막으로보기 컨트롤러에 관찰자를 설정합니다.이 컨트롤러는이 속성의 변경을 기다리고 변경 사항이 관찰 될 때 원하는 코드를 트리거합니다. 예를 들어 당신의 -viewWillAppear: 방법에서

: 당신의 -viewWillDisappear: 방법에서

[self addObserver:self forKeyPath:@"selectedSectionIndex" options:NSKeyValueObservingOptionNew context:nil]; 

, 관찰자의 등록을 취소 :

[self removeObserver:self forKeyPath:@"selectedSectionIndex"]; 

그것은 -dealloc 방법은 아무튼 있도록이 작업을 수행하는 것이 중요합니다 ' 예외를 throw하지 않습니다. selectedSectionIndex에 변경이있을 때 마지막으로

, 뭔가를 할 수있는 관찰자 방법을 설정 :

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    if ([keyPath isEqual:@"selectedSectionIndex"]) { 
     // The section index changed, so trigger some cool animation 
    } 
} 

키 - 값 관찰 패턴이 때 개체의 값이 변경 어딘가에 뭔가를 트리거하는 것이 일반적인 방법입니다 . Apple은이 주제를 소개하는 좋은 "quick-start" document을 작성했습니다.

+0

대단히 감사합니다. 정확히 내가 찾고있는 것 같습니다. – Michaeljvdw

0

매우 세련된 해결책은 아니지만 UITableView를 서브 클래스 화하고 처음 표시 될 때 - (void)didAddSubview:(UIView *)subview;에서 볼 수 있습니다. 이것은 UITableView에 직접 추가되고 서브 뷰 또는 수퍼 뷰 중 하나가 아니라 추가 된 뷰를 인덱스로 인식 할 수 있다고 가정합니다. 또한 처음 추가 된 후에는 제거되고 다시 추가되는 대신 숨겨지고 표시됩니다.

관련 문제