2017-10-25 9 views
-1

를 다시로드 호출됩니다. 제대로로드 처음으로 (검은 색 배경으로 모든 셀) 나는 화면으로 가서 그것은 또한 제대로 내 코드를 다음 몇 가지 다른 세포를로드하고 흰색 배경을 가진 세포를로드있는 UITableViewController, 세포 내 응용 프로그램에 잘못

image1

. 내가 돌아 가기 갈 때

image2

문제가 발생합니다. 흰색 배경 세포의 수와 같은

image3

그것의 흰색 사람이 될 백그라운드로 세포가 한 번 검은 만들기, 제기된다 (그것은 내가 원하는 게 아니에요). 일단 셀이 화면에로드되면 장치의 메모리에 남아 있어야한다고 생각했습니다.

코드가 올바르지 만 제대로 작동하는지 확인하기 위해 코드에 인쇄물을 넣었습니다.

그래서 나는 당신에게 이런 종류의 문제가 있거나 비슷한 문제가 있었습니까? 이것이 iOS 버그라고 생각합니까?

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> HistoricoSelectedCell { 
    let cell2 = tableView.dequeueReusableCell(withIdentifier: "historicoCell", for: indexPath) as! HistoricoSelectedCell 

    let item = itemChosen[indexPath.row].item 
    let cell = self.configureCell(cell: cell2, indexPath: indexPath, item: item!) 

    return cell 
} 
+1

코드를 추가하십시오. 이것 좀 읽어주세요 : https://stackoverflow.com/help/how-to-ask – Barns

답변

0

그것은 셀 재사용 문제입니다 :

편집 됨, 코드를 추가.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell에 사용할 새 셀을 생성하는 경우 tableView.dequeueReusableCell(withIdentifier: <identifier string>, for: indexPath)으로 전화를 겁니다. (정말로 질문이있는 코드를 게시해야합니다).

처음부터 인스턴스화되지 않았지만 이미 생성되어 다른 셀에 사용되었으므로 가져온 셀은 재사용됩니다.

1)이 cellForRowAt indexPath 방법에 필요한 모든 속성을 설정하십시오에

옵션은 다음.

2) 적절한 속성

3) UITableViewClass에 prepareForReuse()을 무시하고 거기에 당신의 재산을 복원을 설정하는 fund configure(cell: UITableViewCell) 함수를 만듭니다.

+0

안녕 제이크, 맞아! dequeue 메서드를 사용했습니다. 1 - cellForRowAt indexPath 메서드의 모든 속성을 설정합니다. 2 - 필자는 지금이 기능을 만들었지 만 다른 방법으로 호출되어 어디에서 호출해야하는지 모르겠습니다. 3 - Ive가 옵션 3을 검색했지만 prepareForReuse()라는 메서드가 없습니다. 내 질문에 다시 한번 확인해보십시오. 코드를 추가했습니다. 다른 팁이 있습니까? 감사! –