2016-10-13 6 views
0

또 다른 질문으로는 자동 스크롤을 사용하지 않고 collectionView를 다시로드하는 방법을 알아 내려고합니다. 또한 콜렉션 뷰에서 변경해야 할 많은 다른 상황이 있음을 알고있었습니다. 또한 나는 alpha를 바꾸고 text를 바꾸고 자하는 몇몇 항목들을 가지고있다. 스위프트에서이 모든 것을 할 수있는 방법이 있습니까? 예를 들어, 각 셀에 뷰가있는 컬렉션 뷰가 있고 해당 뷰에 textField가있는 경우 전체 테이블을 다시로드하지 않고도 알파와 텍스트를 변경할 수 있습니까?다시로드하지 않고 UICollectionView 요소에 직접 액세스 할 수있는 방법이 있습니까?

+0

'reloadAtIndexPath'을 (를) 사용해 보셨습니까? – Santosh

+0

나는 그것을 알고 그것에 대해 언급 할 것이지만 라벨이나 버튼을 평소대로 바꿀 수있는 방법과 같이 하나의 항목을 더 깊게 바꾸는 방법이 있는지 궁금합니다. –

답변

1

UICollectionView에 대한 설명서를보십시오. 몇 가지 "다시로드"방법이 있습니다

  1. reloadData()
  2. reloadSections(_:)
  3. reloadItems(at:)

방금, 단일 항목을 다시로드 데이터 소스의 데이터를 업데이트 한 다음에 통과 reloadItems(at:)를 호출 할 경우 아이템의 인덱스 패스

또 다른 옵션은 셀이 현재 표시되어있는 경우 cellForItem(at:) 메서드를 사용하여 기존 셀에 대한 참조를 얻는 것입니다. 그런 다음 필요에 따라 셀의 UI 구성 요소에 직접 액세스 할 수 있습니다. 필요에 따라 데이터 모델을 업데이트해야 사용자가 스크롤하여 다시 돌아 오면 셀이 제대로 렌더링됩니다.

+0

죄송합니다. 문서로 인해 많은 막 다른 골목과 문제 및 혼란이 생깁니다. 이것은 타이의 CellForItem이 내가 찾고있는 것이지만 위의 답과 나는 내가하려고하는 것을 성취 할 수있는 reloadItems와 그것 모두를 할 수 있다고 생각합니다. :) –

0

특정 UIcollectionViewcell의 사용자 지정보기를 업데이트 할 수있는 곳 중 가장 적합한 곳은 reloadItemsAtIndexPaths입니다. reloadData으로 전체 collectionview보다 특정 항목을 처리하게됩니다. 코드에서 알림이나 콜백을 통해 처리 할 수 ​​있습니다. 코드를 업데이트하면 언제 셀을 업데이트할지 결정할 수 있습니다.

희망이 있으면 도움이 될 것입니다.

관련 문제