2011-10-22 2 views
0

해당 UITableView가 contentSize 속성을 수정하고 나 혼자서 설정할 수 없다는 것을 알았습니다.표 머리글을 숨기고 삽입/삭제 후 숨겨진 채로 유지하는 방법

Stack Trace

이 내 호출 스택입니다. 이 전화 후 contentSize이 수정되었습니다. 나는 그것을 원하지 않는다. 헤더를 숨기고 싶기 때문에 뷰를 조금 아래로 스크롤해야하고, 나는 그것을 조금 아래로 스크롤 할 수 있도록 보이는 것보다 조금 더 높게 설정해야한다.

아이디어를 테이블 헤더를 숨기고 삽입/삭제 후 숨겨 지도록하십시오. 숨김으로써 처음에는 테이블 헤더가 "숨김"을 의미하지만 맨 위로 스크롤하면 표시됩니다.

CoreData로 데이터를 가져 오는 데 NSFetchedResultsController을 사용하고 있습니다.

답변

0

마찬가지로 controllerDidChangeContent가 호출 된 직후 iOS 개인 코드로 contentSize가 수정 된 것처럼 보입니다.

레코드 용입니다. 이것은 내 솔루션입니다 (searchView은 숨기려는보기입니다) :

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView.contentSize.height <= scrollView.frame.size.height) 
    { 
     [scrollView setContentOffset:CGPointMake(0, self.searchView.frame.size.height)];   
     [scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, tableView.frame.size.height + self.searchView.frame.size.height)]; 
    } 
} 
0

당신은이 싶습니다 헤더의 크기에있는 tableview의 대리자 메서드를 구현하고 0을 반환 할 수 있습니다 : 각 섹션이 제로가 될 때까지

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
    return 0; 
} 

이 헤더를 설정합니다. heightForFooterInSection:

+0

나는 숨기거나 표시하는 방법을 알고 있습니다. 아이디어는 기본적으로 "숨김"으로 유지하는 것입니다. 상단에 사용자가 고의로 상단으로 스크롤해야만 볼 수있는 헤더보기가 있기 때문에 기본적으로 상단으로 스크롤하지 못하게하는 것입니다. 숨기기 위해 스크롤하는 방법을 알고 있지만 삽입/삭제 작업 이후에 테이블 자체가 contentSize 값을 변경하기 때문에 표시됩니다. – Marcin

관련 문제