iOS 61

[ iOS ] UIListContentConfiguration: CollectionView에 기본 Cell 사용하기 (14+)

공부 기록 TableView의 Cell에서 contentConfiguration 프로퍼티가 있듯이 CollectionView의 Cell에서도 contentConfiguration이 있다. 하지만 UITableViewCell에는 defaultContentConfiguration()이 있지만, UICollectionView에서는 해당 프로퍼티를 가지고 있지 않다. [ iOS ] contentConfiguration: TableView에 기본 Cell 사용하기 (iOS 14+) 공부 기록 UITableViewCell은 커스텀하지 않고도 cell을 구성할 수 있도록 여러 옵션을 제공한다. 가장 간단한 방법으로는 UITableViewCell의 프로퍼티 중 textLabel, detailTextLabel, imag..

iOS 2022.12.04

[ iOS ] contentConfiguration: TableView에 기본 Cell 사용하기 (iOS 14+)

공부 기록 UITableViewCell은 커스텀하지 않고도 cell을 구성할 수 있도록 여러 옵션을 제공한다. 가장 간단한 방법으로는 UITableViewCell의 프로퍼티 중 textLabel, detailTextLabel, imageView를 사용하는 것이였지만, iOS 14 이후부터는 이 프로퍼티들은 Deprecated 되어 더 이상 사용할 수 없다. 이것들을 대체하는 프로퍼티가 개발되었는데, 바로 contentConfiguration 이다. UIButton에서도 이와 유사한 프로퍼티인 configuration(iOS 15+)이 있다. 많은 Class들에서 Configuration이 등장하는 것으로 보아 개발자가 View 구성을 한 객체로 정리되며 재사용이 가능한 형태로 개발하도록 Apple에서 방..

iOS 2022.11.29

[ iOS ] UIButton.Configuration 사용하기(1) - Init, Title (iOS 15)

이 글은 iOS 15 버전을 기준으로 작성된 글입니다. UIButton.Configuration이란? iOS 2.0+ 부터 UIButton의 모양은 setTitle(:for:), setImage(:for:) 과 같은 UIButton의 인스턴스 메서드를 통해 설정할 수 있었다. 하지만 iOS 15+ 부터는 UIButton.Configuration이 추가되면서 새로운 방법으로 UIButton의 모양과 행동을 설정할 수 있게 되었다. Configuration은 이전에 사용하던 메서드들과 함께 사용할 수 있으며, 그 메서드들을 아예 대체할 수도 있다. Configuration의 장점은 기존 버튼의 모양과 행동을 수정하고 싶을 때 코드를 일일이 수정할 필요없이 새로운 Configuration을 구성한 뒤 UIBu..

iOS 2022.10.13

[iOS ] 데이터 전달 : (3/5) NotificationCenter로 전달하기

문제 다양한 방법으로 데이터 전달하기 1. Property로 전달하기 2. DelegatePattern으로 전달하기 3. NotificationCenter로 전달하기 4. Closure로 전달하기 5. 장단점 정리 NotificatonCenter로 전달하기 3 - 1 화면 전환 시 데이터를 전달하는 데에 여러가지 방법이 있는데, 그 중 NotificationCenter를 사용해 데이터를 전달하는 방법을 알아보자. NotificationCenter는 알림 발송 매커니즘(notification dispatch mechanism)이다. NotificationCenter는 알림이 게시(post)되면 등록된 옵져버에 알린다(broadcast). 알림을 받은 옵져버는 미리 설정된 메서드를 호출해 작업을 수행한다. ..

iOS 2022.06.21

[ iOS ] 데이터 전달 : (2/5) DelegatePattern으로 전달하기

문제 다양한 방법으로 데이터 전달하기 1. Property로 전달하기 2. DelegatePattern으로 전달하기 3. NotificationCenter로 전달하기 4. Closure로 전달하기 5. 장단점 정리 DelegatePattern으로 전달하기 2 - 1 화면 전환 시 데이터를 전달하는 데에 여러가지 방법이 있는데, 그 중 Delegate Pattern을 사용해 데이터를 전달하는 방법을 알아보자. 2의 ViewController에서 Delegate 프로토콜을 선언해 화면 전환 버튼의 액션함수에서 방금 선언해준 Delegate의 메서드를 호출한다. 이 메서드의 구현은 1의 ViewController에서 이루어진다. 메서드 호출 시 데이터를 인수로 넘겨주고, 구현 부분에서는 매개변수를 원하는 곳에..

iOS 2022.06.20

[ iOS ] 데이터 전달 : (1/5) Property로 전달하기

문제 다양한 방법으로 데이터 전달하기 1. Property로 전달하기 2. DelegatePattern으로 전달하기 3. NotificationCenter로 전달하기 4. Closure로 전달하기 5. 장단점 정리 Property로 전달하기 1 - 2 화면 전환할 경우, 1의 ViewContorller에서 2의 ViewController의 프로퍼티에 데이터를 할당해 전달하는 방법이다. 데이터 할당은 보통 화면 전환 시 이루어지며, 그때 생성하는 2의 ViewController 객체를 활용한다. 먼저 1에서 데이터를 입력할 TextField의 아울렛 변수(contentTextField)와 화면 전환을 할 Button의 액션 함수(tapNextButton)를 정의한다. import UIKit class Pr..

iOS 2022.06.20

[ iOS ] 사진 선택 시 번호 표기(넘버링) 구현 (+ collectionView)

공부한 내용을 정리한 글입니다. 문제 사진 선택 시 번호 표기(넘버링) 구현하기. 특정 사진 선택 해제 시 변경사항이 전체 번호 표기에 반영되어야 한다. 1. cell 내 버튼 선택 이벤트 2. 특정 사진 선택 목록에 추가하기 3. 특정 사진 선택 해제하기 4. 작업을 구현하면서 경험했던 오류 5. 개선할 만한 부분 1. cell 내 버튼 선택 이벤트 [ iOS ] cell 내 버튼 선택 이벤트 구현 (+ Delegate 패턴) 공부한 내용을 정리한 글입니다. 문제 사진 내 버튼 선택하기 1. cell 내 버튼 이벤트 발생시키기 UICollectionViewControllerDelegate의 collectionView(_:didSelectItemAt:) 메서드를 통해 collectionView C.. 8..

iOS 2022.06.15

[ iOS ] cell 내 버튼 선택 이벤트 구현 (+ Delegate 패턴)

공부한 내용을 정리한 글입니다. 문제 사진 내 버튼 선택하기 1. cell 내 버튼 이벤트 발생시키기 UICollectionViewControllerDelegate의 collectionView(_:didSelectItemAt:) 메서드를 통해 collectionView Cell의 선택 이벤트를 처리할 수 있다. 하지만 이 이벤트는 cell의 이벤트를 의미하지 cell 내 버튼의 이벤트를 의미하지는 않는다. 우리는 버튼이 cell 내에 있다는 것을 알고 있어야 한다. collectionView(_:didSelectItemAt:) 델리게이트에 특정한 인덱스의 아이템이 선택되었음을 알린다. 버튼에 선택 이벤트가 발생하면 해당하는 액션 함수가 호출되므로, 액션함수 내에 사진을 선택하는 작업을 구현하면 된다. 하..

iOS 2022.06.14

[ iOS ] URL 이미지 받아오기 + Alamofire

문제 Alamofire를 사용해 URL에서 이미지 받아오기 Unsplash와 같은 Open API나 서버에서 사진을 받을 경우 URL을 UIImage로 변경하는 작업을 처리해야한다. 보통 Data(constentsOf:)를 사용하지만 공식문서에서는 URLSession 사용을 권장한다. 오늘은 URLSession을 기반으로 만들어진 Alamofire를 통해 URL에서 이미지를 받아오자. [ iOS ] URL로 이미지를 받아 올 경우 Data(contentsOf:)를 사용하면 안 되는 이유 공부한 내용을 정리한 글입니다. 문제 네트워크 기반의 URL 이미지를 받아올 때 Data(contentsOf:)를 사용해도 될까? 1. Data(contentsOf:) NSData(constentsOf:)는 주어진 URL..

iOS 2022.06.08

[ iOS ] URL로 이미지를 받아 올 경우 Data(contentsOf:)를 사용하면 안 되는 이유

공부한 내용을 정리한 글입니다. 문제 네트워크 기반의 URL 이미지를 받아올 때 Data(contentsOf:)를 사용해도 될까? 1. Data(contentsOf:) NSData(constentsOf:)는 주어진 URL로부터 데이터를 데이터 객체로 초기화하는 작업이다. 따라서 이 메서드를 사용해 URL로부터 이미지를 받아온다면 잘 작동한다. 하지만 해당 메서드의 공식문서에는 네트워크 기반의 URL의 경우 해당 메서드를 사용하지 말라고 명시되어있다. [ iOS ] NSData(contentsOf:) init(contentsOf:) 주어진 URL로부터 데이터를 데이터 객체를 초기화한다. Technology Foundation Declaration init?(contentsOf url: URL) Parame..

iOS 2022.06.07

[ iOS ] CollectionView 간격 조정하기

문제 가로 방향의 CollectionView에서 cell의 간격을 조정하기 CollectionView의 cell 간 간격을 설정해주기 위해서는 UICollectionViewDelegateFlowLayout 프로토콜의 메서드를 사용하면 된다. collectionView(_:layout:minimumLineSpacingForSectionAt:) 한 섹션의 연속적인 행 또는 열 사이의 간격을 지정한다. collectionView(_:layout:minimumInteritemSpacingForSectionAt:) 한 섹션의 동일 행 또는 열에서 아이템들의 간격을 지정한다. scroll Direction따른 메서드 사용 1. 가로 방향 스크롤일 경우, horizontally collectionView(_:layo..

iOS 2022.05.10

[ iOS ] isEnabled와 isUserInteractionEnabled 비교

공부한 내용을 글로 정리한 글입니다. 문제 isEnabled와 isUserInteractionEnabled는 무슨 차이가 있을까? 1. isEnabled 란? 해당 컨트롤이 활성화 상태인지 여부를 나타내는 Bool타입의 프로퍼티 UIController의 인스턴스 프로퍼티. UIController는 UIButton의 부모 클래스이다. true : 해당 컨트롤을 활성화한다. false : 해당 컨트롤을 비활성화한다. 활성화된 컨트롤은 사용자와의 상호작용을 할 수 있다. 2. isUserInteractionEnabled 란? 사용자 이벤트를 무시하고 이벤트 큐에서 제거할지 여부를 결정하는 Bool 타입의 프로퍼티이다. UIView의 인스턴스 프로퍼티. UIView는 UIController의 부모 클래스이다. ..

iOS 2022.04.12
728x90