목록iOS/UiKit (17)
大器晩成

만약 앱스토어에 이런 화면을 구현하신다면 어떻게 구현하실 건가요?Compositional Layout을 사용하지 않는다면, 저는 붉은 테두리는 컬렉션뷰로 만들고, 파란색 테두리는 버튼 또는 두 번째 컬렉션뷰의 헤더로 만들 거 같습니다. 그렇다면 현재 컬렉션 뷰가 두 개가 필요한 것인데, 이걸 하나의 컬렉션뷰로 만들 수 있다면 편하게 관리할 수 있을까요?개발자마다 다르겠지만, Compositional을 활용해서 하나의 컬렉션뷰로 만들어 보려고 합니다. 우선 레이아웃은 위의 그림과 같이 잡았습니다. 코드로 다시 말씀드리겠지만, 첫 번째 섹션은 하나의 그룹이 하나의 아이템을 갖도록 구성했습니다.두 번째는 그룹 2개를 사용했으며, 그룹 안에 그룹이 있으며 아이템 3개가 내부 그룹을 구성합니다. 외부 그룹은 내..

UIKit에서 UILabel을 사용할 경우 패딩 속성이 없어 View를 만들고 View안에 Label을 넣어서 관리하는 경우가 종종 있습니다.불편함 때문에 찾다 보니 UILabel에도 패딩이 적용할 수 있어 간단하게 작성해보려고 합니다. 첫 번째 레이블과 두 번째 레이블은 패딩이 적용되었으며, 세 번째 레이블은 적용되지 않은 상태입니다. 커스텀하게 사용하기 위해서 Apple에서 제공하는 drawText 메서드를 통해, 기본 Padding을 지정해 줄 수 있습니다.final class PaddingLabel: UILabel { private let padding = UIEdgeInsets(top: 16.0, left: 16.0, bottom: 16.0, right: 16.0) ..

iOS에서 지원해 주는 MapKit을 활용하여 특정 좌표에 Pin을 보여주는 예제입니다. import UIKitimport MapKitclass ViewController: UIViewController { private let mapView = MKMapView() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white layout() } private func layout() { view.addSubview(mapView) // Auto Resizng 해제 mapView..

CollectionView 마지막 3탄으로 동적으로 셀의 크기를 개별적으로 변경하는 방법에 대해서 알아보려고 합니다. 이번에 동적으로 셀의 크기를 변경하는 방법은 아래 영상처럼 레이블에 크기에 따른 셀의 크기를 조절해보려고 합니다. 1. 컬렉션 셀의 크기를 개별로 설정하는 방법extension ViewController: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { ..