2014-12-02 4 views
1

이것은 나를 미치게 만들었습니다.이 문제와 관련된 모든 게시물을 살펴 보았습니다.iOS Swift dequeueReusableCellWithIdentifier가 겹침을 초래합니다.

사용자 정의 tableview 셀 클래스와 XIB 파일을 사용하고 있습니다. 스크린에서 테이블 뷰를 스크롤 할 때까지 (모든 오래된 밤), 모든 것이 잘 작동합니다. 나는 그것이 dequeueReusableCellWithIdentifier 메소드와 관련이 있으며 이전 데이터를 지우지 않아야한다는 것을 알고 있습니다. 그러나 나는 이것을 구현하는 방법을 모른다.

셀이 화면에서 벗어나 스크롤되면 겹쳐서 셀에 이미지가 계속 추가됩니다.

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; 

UIImageView *defaultImageView; 
UILabel *customLabel; 

if (cell == nil) { 
    // create the cell and empty views ready to take the content. 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
} else { ... } 

그러나 내가 신속한에서이를 달성하는 방법을 작동하지 않을 수 있습니다

내가 찾은 것과
let cell: DetailHeaderTableViewCell = tableView.dequeueReusableCellWithIdentifier("detailHeaderTableViewCell") as DetailHeaderTableViewCell 

, 나는 이런 식으로 뭔가를 구현해야합니다.

미리 감사드립니다.

답변

1

당신이 찾고있는 것은 UITableViewCell's prepareForReuse 방법입니다.

사용자 지정 UITableView 셀을 사용하는 경우 재사용되기 전에 셀의 이전 데이터를 지우려면이 메서드를 사용해야합니다.

+0

감사합니다. 내가 필요한 것! – eol

+0

이제 뷰를 다시 열면 모든 셀 제약 조건이 잘못되었습니다. 즉 화면에서 셀을 스크롤하지 않으면 모두 기본값 44pt로 돌아갑니다. 어떤 아이디어? – eol

+0

당신이 물어 본 원래의 질문과는 다른 & 새로운 질문처럼 들립니다. 왜 "''prepareForReuse'" "에서했는지에 대한 코드를 보여주는 새로운 질문을 던지십시오. –

관련 문제