Skip to content

[실전편] tableView Cell이 중첩되서 표현됨 reuse가 되지않고 계속해서 새로운 cell이 같은 자리에 생성됨 #1

@SHcommit

Description

@SHcommit

1
2

테이블 뷰 셀을 커스텀으로 구현했는데 dequeu함수를 호출하고 그 인스턴스의 프로퍼티에 값을 새로 초기화해서 Layout과 데이터를 줬는데 셀이 중첩해서 생겼다.

reuse가 되지않고 계속해서 테이블 뷰 셀이 생긴 것인데..
그 이유는 내가 테이블 뷰 셀의 재사용 메서드를 통해 기존에 존재하는 셀을 인스턴스로 얻었을 때 !!! 이전 셀을 초기화하지 않은 채 새로 cell의 subview들을 초기화하고 값을 할당했기 때문에 중첩해서 나타나는 것이었다. 내 cell초기화 과정이 dequeue 이후에 무저건 적으로 되는데 그전에 이미 재사용 큐에서 존재했던 cell의 정보들은 다 없애지 않았기에 중첩해서 생기는 것 같다.

다른화면으로 갔다가 돌아오면 viewWillAppear에서 tableView.reloadData()을 실행해서 tableView(_:cellForRowAt:)를 실행할 때 위와같은 중첩사항이 반복되기 때문에 reloadData()를 통해 테이블 델리게이트 메서들이 실행되기 이전인 prepareForReuse()를 통해 이전 셀의 정보를 초기화 하거나 없애야 하는 로직을 추가함으로 해결할 수 있었다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions