본문 바로가기

UIKit

(6)
[UIKit] LSP 위반 케이스 (Forced Unwrapping의 위험성) 설명하기 앞서, 다음 함수에서 Crash가 발생할 수 있는 케이스가 있을까요? setDelegate(to:) 함수 내에서는 Crash가 발생되지 않는다는 가정을 하겠습니다. . . . 정답은 Crash가 발생할 수 있는 케이스가 있습니다. Crash가 발생한다면, 강제 언랩핑 부분에서 발생할 것이라는 게, 합리적인 생각일 텐데... 근데 왜? 이상하죠, UITableViewDelegate 타입인, tableView의 delegate가 nil이 아닌데 강제 언랩핑한다고 Crash 발생한다니요. 어떤 케이스에서 Crash가 발생할까요? 예를 들어 setDelegate function 이 다음과 같이 구현되어 있을 경우 Crash가 발생합니다. 분리해서 본다면, 각 function은 문제 될 것이 없어 보입니..
[UIKit] systemLayoutSizeFitting 사용 시, 주의 사항 이전 포스팅에서 systemLayoutSizeFitting을 사용하여 dynamic cell sizing 하는 방법에 대해 알아보았습니다. 2020/10/29 - [UIKit] - [UIKit] Dynamic cell sizing - systemLayoutSizeFitting [UIKit] Dynamic cell sizing - systemLayoutSizeFitting TableView/CollectionView를 포함하여 일반적인 View 사용 시, 텍스트 등의 내부 컨텐츠를 바탕으로 사이즈 구성이 필요한 경우가 있습니다. 이런 경우에는 Layout Constrains를 기반으로 뷰의 사이즈를 계산 ntomios.tistory.com systemLayoutSizeFitting에 대한 개념, 사용 방법..
[UIKit] Dynamic cell sizing - systemLayoutSizeFitting TableView/CollectionView를 포함하여 일반적인 View 사용 시, 텍스트 등의 내부 컨텐츠를 바탕으로 사이즈 구성이 필요한 경우가 있습니다. 이런 경우에는 Layout Constrains를 기반으로 뷰의 사이즈를 계산하는 systemLayoutSizeFitting(_:withHorizontalFittingPriority:verticalFittingPriority:) 을 통해 동적으로 사이즈를 계산할 수 있습니다. 대표적으로 위와 같은 화면에서 컨텐츠(텍스트)에 따른 너비 설정이 필요합니다. 위와 비슷한 화면을 구성하면서 사용 방법을 알아보겠습니다. 위 코드는 CollectionViewCell contentView에 label을 추가하고, constraint를 설정하는 코드입니다. 텍스트..
[UIKit] CollectionView - cell reuse시 주의해야 할 점 collectionView 사용 시, cell을 구성하기 위해 dataSource function 중 하나인 cellForItemAt을 사용합니다. 그리고 일반적으로 이 function 안에서, 많은 양의 셀의 생성/소멸을 막아 메모리의 부담을 줄이기 위해 셀을 재사용하는 과정을 거칩니다. 이는 구성한 각 셀들이 CollectionView를 reload 할 경우, 실질적으로 다른 셀들이 될 수 있음을 의미합니다. cellForItemAt을 통해 Cell을 구성한다면 보기에는 reload 이전과 같은 Cell로 보이지만, reload 과정에서 이전과 같은 셀을 재사용한다는 보장이 되어 있지 않기 때문입니다. 위 영상은 Timer를 통해 일정 주기로 CollectionView를 reload하며, 각 셀들의 ..
[UIKit] Generic Cell Configurator 2020/03/16 - [UIKit] - [UIKit] UITableView의 indexPathForRow(at:) 오차에 대한 디버깅 [UIKit] UITableView의 indexPathForRow(at:) 오차에 대한 디버깅 최근 여러 가지의 Cell을 Generic을 활용하여 구성하는 방식을 사용하며 발생했던 문제에 대해 다루고자 합니다. https://medium.com/chili-labs/configuring-multiple-cells-with-generics-in-swift-dcd5e209ba16.. ntomios.tistory.com 위 글에서 언급했던, Generic Cell Configurator에 대해 다루고자 합니다. 중복되는 내용이 포함되어 있습니다. iOS 개발자라면 UITabl..
[UIKit] UITableView의 indexPathForRow(at:) 오차에 대한 디버깅 최근 여러 가지의 Cell을 Generic을 활용하여 구성하는 방식을 사용하며 발생했던 문제에 대해 다루고자 합니다. https://medium.com/chili-labs/configuring-multiple-cells-with-generics-in-swift-dcd5e209ba16Configuring multiple cells with generics in SwiftiOS Developers spend most of their development time dealing with UITableView and UICollectionView. It’s quite straightforward when you need…medium.com현재 저희는 위 글을 참고, 커스텀하여 활용하고 있습니다.다음에 커스텀한 ..