2012-01-20 3 views
2

테이블 상단에서 스크롤 할 수있게하려는 사용자 지정 UITableView 헤더가 있습니다. 일반적으로 헤더는 테이블 상단에 붙어 있습니다. 스크롤 기능으로 어떻게 든 바꿀 수 없으므로 테이블 너머에있는 셀을 스크롤 할 수 있습니다.스크롤 UITableView 헤더?

감사합니다.

+0

나는 당신이 무슨 뜻인지 모르겠다. 헤더를 정적으로 유지하고 사용자가 테이블을 스크롤 할 때 항상 표시 되길 원하십니까? 또는 사용자가 아래로 스크롤 할 때 헤더가 테이블과 함께 스크롤되도록 사라지게할까요? – MGA

+0

헤더가 표와 함께 스크롤되기를 원하므로 사용자가 아래로 스크롤하면 화면 상단에서 사라집니다. –

답변

4

원하는 동작을 원하면 header을 첫 번째 셀의 내용으로 넣으십시오. 원하는 특정 셀을 사용자 지정할 수 있습니다. UITableViewDelegate 문서가 도움이 될 것입니다.
추 신 : tableView 머리글을 사용하는 것이 요점은 창 상단에 붙이는 것입니다.

편집 : 당신은 당신이 원하는 방식으로해야 할 필요가있다 경우에, 당신이 시도 할 수 있습니다 : 그 contentOffset를 설정하여 tableView 약간 아래로 이동합니다. 예 : myTableView.contentOffset= CGPointMake(0,heightOfYourView). 이제 상단에 yourView을 추가하십시오.

+0

그 점을 이해합니다. 나는 이것을했는데, 왜냐하면 나의 테이블이 핵심 데이터 레코드를 얻었 기 때문에 내가 피하려고 애 쓰고있는 많은 문제를 일으켰다. 그래서 테이블을 가진이 사용자 정의보기를 가지고 있지만 셀 인덱스의 포트가 아닌 대체 솔루션을 찾고있었습니다. –

+0

글쎄, 내 대답을 편집했다. 지금 시도해보십시오. 또한, 귀하의 질문에 이것을 언급해야합니다. – aqs

+2

헤더는 코어 데이터 행과 별도의 테이블 뷰 섹션에 있어야합니다. 이것은 첫 번째 코어 데이터 행이 여전히 인덱스 0 –

0

전체 테이블에 하나의 헤더 만있는 경우 tableHeaderView 속성을 설정할 수 없습니까?

+0

전체 테이블에 대해 하나의 헤더가있는 섹션이 하나 있습니다. 내보기를 머리글에 추가했지만 일반적으로 머리글이 테이블 위쪽에 붙어 있으므로 셀과 함께 스크롤해야합니다. 아니면 이해 못하겠습니까? –

1

색인 0의 섹션에 대해 tableView:viewForHeaderInSection:을 구현하면 스크롤 할 때 사라지는 첫 번째 섹션으로 헤더를 사용할 수 있습니다. 이런 식으로 전체 UITableView의 헤더가 아닙니다.

0

나를 좋아해도 tableHeaderView 속성을 검색했을 수 있습니다. 자세한 내용은 this SO question을 참조하십시오.

4
myTableView.tableViewHeader = myCustomTableHeaderView; 

이 테이블보기의 헤더로 myCustomTableHeaderView을 설정합니다 그리고 테이블보기로 이동합니다.

0

당신의 TableView 스타일하고있는 viewDidLoad 메서드에서 코드의 다음 줄을 추가 그룹화 사용해야합니다

는 nib 파일에서 또한
myTableView.backgroundColor=[UIColor clearColor]; 
myTableView.opaque=NO; 
myTableView.backgroundView=nil; 

, 당신은 그룹화 된 테이블의 배경 색상을 취소해야을;

-2
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGFloat sectionHeaderHeight = 40;//Change as per your table header hight 
    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { 
     scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); 
    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { 
     scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); 
    } 
} 
+1

yur 코드에 최소 정보를 추가하는 것을 고려하십시오. –