Skip to content

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

Description

@SHcommit

1
2

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

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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