18.01.06 스터디

도우님

CoW

수정이 발생할 때만 복사를 한다. 그냥 대입하는 경우에는 참조만 함. 왜냐하면 성능을 유지시키위해서.

Closure

Swift에서는 클로저가 일급 시민(First-class Citizen)으로서 행동한다. 다음과 같은 원칙을 만족할 때 일급 시민이라 할 수 있다.

  • 변수나 데이터 구조안에 담을 수 있다.
  • 파라미터로 전달할 수 있다.
  • 반환 값(return value)으로 사용할 수 있다.
  • 할당에 사용된 이름과 관계없이 구별이 가능하다.
  • 동적으로 프로퍼티 할당이 가능하다.

Swift의 일급시민 클로저(Closure) - Oaksong’s Pluto I

기린님

Custom CollectionView

커스텀 콜렉션 뷰를 만드는 경우는 다음과 같다.

  • 그리드(grid)로 딱딱 떨어지지 않을 때
  • 스크롤 방향이 한 방향이 아닐 때
  • 셀 모양이 바뀔 때

이러한 경우 UICollectionViewLayout을 상속받아서 사용하자!

  • prepareLayout: 개별 셀의 사이즈계산
  • collectionViewContentSize: 전체 콜렉션 뷰의 크기
  • layoutAttributesForElementsInRect(:) : 특정 사각형 내의 셀들의 attribute를 정의해줌