2013-01-20 5 views
1

표준 셀 (수정 없음을 의미)이있는 표준 UITableView가 있습니다. 각 셀의 텍스트는 다른 웹 URL에서 가져와야합니다.UITableView에서 텍스트를 지연로드하는 방법은 무엇입니까?

cell.textLabel.text = [self getTitleFromURL:myURL]; 

물론 주 스레드에서 URL을 호출하는 것은 원하지 않습니다. 그러면 어떻게해야합니까? 나는 (다른 StackOverflow 게시물에서 가져온) 같은 것을 시도했지만 작동하지 않습니다.

아이디어가 있습니까? 나는 아마 여기에서 정말로 단순한 무엇인가 놓치고있다.

+0

왜 작동하지 않습니까? –

+0

사실 그것이 작동하는 것처럼 보이지만, 셀을 스크롤하여 다시 셀에 올 때만 초기로드시 셀이 업데이트되지 않습니다. –

답변

2

테이블에 비동기 데이터를로드하는 데 필요한 한 가지 - 데이터가 도착할 때까지 셀이 화면을 벗어나서 스크롤하고 데이터 배열의 다른 항목에 대해 재사용되었을 수 있습니다. 어느 셀 그것에을 게시하는대로 정보가 여전히 관련이 있는지 여부를 확인하고, 어떠한 가정도하지 않습니다 필요가 메인 스레드에 수익에 따라서

...

if ([[tableView indexPathsForVisibleRows] containsObject:indexPath]) { 
     UITableViewCell * correctCell = [self.tableView cellForRowAtIndexPath:indexPath]; 
       correctCell.textLabel.text = title; 
       [correctCell setNeedsLayout]; 
      } 

또한해야 할 수도 있습니다 setNeedsLayout을 사용하여 셀을 업데이트하라.

+0

감사합니다. [correctCell setNeedsLayout]이 나를 위해 무엇을 했는가! –