2011-12-31 2 views
2

내가하려는 것은 UITableView 색인의 모양을 맞춤 설정하는 것입니다. 어떤 검색을 한 후에는 이것이 불가능하다는 결론을 내 렸으며 아래 스크린 샷과 같은 것을 달성하기 위해 사용자 정의보기를 만들어야합니다.맞춤 색인보기가있는 UITableView

example http://img705.imageshack.us/img705/8573/57screenshot20111231at9.png

내 테이블보기 그래서 내가 뭘 원하는 작은 점 하나를 탭하면 아래 또는 위로 한 "페이지"를 스크롤하는 섹션이 없습니다. 또한 사용자가보기 위로 스 와이프하여 표준 테이블 뷰 인덱스처럼 빠르게 페이지를 넘길 수 있기를 바랍니다.

나에게 이와 비슷한 내용이나 시작해야 할 부분에 대한 몇 가지 지침을 제공해 주시면 감사하겠습니다.

답변

4

'도트'가 고정 된 색상이라도 괜찮다면 이미 제공된 방법으로 달성 할 수 있습니다. 당신은 필요한 경우에만이 방법을 사용 : 당신은 또한 당신이 선택한 '점'을 통해이 투명한 이미지를 보유하고 UIImageView이 필요합니다

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView; 

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index; 

.

첫 번째 방법은 [NSArray arrayWithObjects:@".", @".", ..., @".", nil]; 양식으로 NSArray을 반환합니다. 사이드 바에 '점'으로 입력됩니다. 각 점은 UITableView의 1 섹션을 나타냅니다. 사용자가 '도트'중 하나를 탭하면 UITableView이 해당 섹션으로 이동합니다. 섹션을 각 1 페이지 길이로 만들고 싶으므로 적절하게 데이터를 구분하십시오.

두 번째 방법은 선택한 도트를 포함하는 투명 이미지가있는 UIImageView의 프레임을 조정하는 것입니다. .frame. 속성을 새롭게 선택된 섹션으로 정렬하십시오. 이 줄을 맞추기 위해서는 약간의 수학이 필요하지만 상당히 쉽습니다.

또한 사용자가 스크롤하는 동안 투명 이미지 이동을 처리하려면 UIScrollViewDelegate 메서드를 사용해야합니다. 그들은 :

- (void)scrollViewDidScroll:(UIScrollView *)scrollView; 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; 

다음은 사용자가 스크롤되는 동안 해당 섹션에 UIImageView 이동을 할 수 있습니다. 다시 말하지만, 모든 것이 완벽하게 정렬되게하려면 약간의 수학을해야합니다.

희망이 도움이됩니다!

+0

고맙습니다. 그것을 시도 할 것입니다. 내가 가진 유일한 문제는 내 TableView가 하나의 섹션이라는 것입니다. 여러 섹션으로 나누면 각 섹션마다 헤더가 있어야하나요 아니면 하나의 큰 섹션으로 표시 할 수 있습니까? –

+0

각 섹션마다 헤더가 필요하지 않습니다. '- (NSString *) tableView : (UITableView *) tableView titleForHeaderInSection : (NSInteger) section;'메소드에서'nil'을 리턴하면됩니다. – msgambel

관련 문제