iOS RSS 리더 앱에서 작업 중입니다. 모든 섹션 헤더는 기사 제목을 표시하는 데 사용됩니다UITableView ReloadData 대기열에서 제외 된 셀을 사용하지 않음
UINib *sectionHeaderNib = [UINib nibWithNibName:@"HeadlineView" bundle:nil];
[self.newsTable registerNib:sectionHeaderNib forHeaderFooterViewReuseIdentifier:SectionHeaderViewIdentifier];
: 내 애플 사용자 정의 섹션 헤더와 jQuery과 구현합니다. "이미 본"기사와 새 기사를 변경할 수있는 옵션이 있습니다. I는 옵션 간을 전환 할 때마다, 테이블 뷰 데이터 배열 정도로 변화 I는 jQuery과 ReloadData 호출해야
[self.newsTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];
I 그것이 붙어 보인다 (부하 1 초 이상을 조금 얻어이 메소드 호출
) 그것은 dequeued 섹션 헤더를 사용하는 대신 모든 섹션 헤더를 다시로드하기 때문입니다. 테이블 뷰를 스크롤 할 때 모든 것이 정상적으로 동작하고 dequeue가 제대로 작동합니다.섹션 헤더를 초기화 할 때마다 3 개의 제스처 인식기를 설정하고 그 시간이 오래 걸립니다. 섹션 헤더가 대기열에서 제외되면 제스처 인식기는 이미 설정되어 있으므로 빠릅니다. 내가 셀/부분 부하의 작업을 소비하는 다른 시간을 수행하고 있지 않다
NowsHeadlineHeaderView *sectionHeaderView = [self.newsTable dequeueReusableHeaderFooterViewWithIdentifier:SectionHeaderViewIdentifier];
:
이
는 디큐 코드입니다. 내가 reloadData를 사용하고 어떻게이 그렇게 될 것 해결할 수있을 때 왜 또 다시 섹션 헤더를 초기화하는있는 tableview입니다 빠른
내 테이블이 50 개의 섹션으로 구성되어 있고 완전히 다른 데이터로 5 개의 섹션으로 만 구성되도록 테이블 뷰를 변경하려면 50 개의 섹션을 삭제하고 5 개의 섹션을 추가해야합니까? 나는이 방법이 훨씬 더 많은 시간이 걸릴 것이라고 생각한다. –
@ItaiCaspi 글쎄, 그래, 모든 경우에 엣지 케이스가있다. 하지만 동기 네트워크 데이터로드처럼 'NowsHeadlineHeaderView'에서 비효율적 인 일을하고 있다고 의심됩니다. – kamprath
NowsHeadlineHeaderView 클래스는 정말 간단합니다. 배열에서만 업데이트 할 UILabel이 3 개 있습니다. 또한 init 블록에 세 개의 제스처 인식기가 설정되어 있습니다. 그게 다야. 그래서 나는 그것이 문제를 일으키지 않는다고 확신한다. –