티스토리 뷰

iOS

UICollectionViewCell의 재사용 관련

할루루 2018. 7. 14. 19:51

UICollectionView의 인스턴스 메소드 dequeueReusableCell(withReuseIdentifier:for:)는 UICollectionReusableView 객체를 리턴한다.

(UICollectionViewCell의 부모 클래스가 UICollectionReusableView이다.)


존재하고 있는 셀이 재사용이 가능하다면, 위의 메소드는 그 셀의 prepareForReuse() 메소드를 대신 호출한다.

(재사용이 가능하지 않다면 dequeueReusableCell...을 호출하고, 재사용이 가능하다면 prepareForReuse...를 호출한다...)



prepareForReuse() 메소드는 UICollectionReusableView의 인스턴스 메소드. 다시 사용할 뷰를 준비하기 위해 필요한 클린업 작업을 수행한다.


이 메소드의 기본 구현으로는 아무것도 하지 않는다. 그러나 이 메소드를 오버라이딩할 때 아무튼 super를 호출해주는 것을 추천한다.

UICollectionViewCell과 같은 하위 클래스들은 이 메소드를 오버라이드하고 관련 액션을 행하는 데 사용한다. 그러니 당신의 서브클래스가UICollectionViewCell이나 다른 중간 위치에 있는 클래스로부터 상속받았다면, super를 호출해주는 것은 부모의 행동을 하는 것을 확실히 해 준다.

뷰가 사용되기 위해 dequeue될 때 이 메소드는 이에 상응하는 dequeue 메소드가 코드에 뷰를 리턴하기 전 호출된다. 서브클래스는 이 메소드를 오버라이드할 수 있고, 프로퍼티들을 기본값으로 리셋하는 데 사용할 수도 있고, 일반적으로 뷰를 재사용 준비가 되게 할 수 있다. 뷰에 어떠한 새로운 데이터를 할당하기 위해 이 메소드를 사용해서는 안된다. 그것은 데이터소스 객체의 책임이다.




확실시 UITableView를 사용하는 것보다 UICollectionView를 사용하는 것이 여러모로 훨씬 어렵다. 생각해야할 것들이 많다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함