WWDC 2020 | Modern cell configuration

https://developer.apple.com/videos/play/wwdc2020/10027

🔑 영상에서 나오는 키워드 정리
Configuration?
– Cell뿐만 아니라 View에서도 사용할 수 있는 image, text, state 등을 갖고 있는 UI 구성을 도와주는 것.
– Configuration는 State를 기본 값으로 갖고 있다. ( = Configuration State)
– Configuration State는 Selected는 물론 Editing 등의 값과 Binding 되어있다. State가 변화될 때 configuration의 propety인 Background Color, Text, Image 등이 변화도록 override method를 지정할 수 도 있다.


cell.textLabel.text 처럼 cell의 property에 직접적으로 접근하는 것들은 다 deprecated되고 Configuration을 통해 변경하도록 미래에는 그렇게 된다고한다,,, !


Cell의 ViewConfiguration에 대해 살펴보는 Session.


iOS 14의 새로운 API를 보기전에 iOS 13의 TableView Cell 구성에 대해 복습.

~ iOS 13

iOS 14
New Cell Configuration

var content = cell.defaultContentConfiguration()
– cell을 tableView Style로 만들 수 있게 해준다.

configurationimagetext를 수정하면
UILabel, UIImageView의 value를 변환시키는 것이 아니라
content가 갖고있는 property value만 변화시킨다.

cell이 UICollectionViewCell이 되더라도 configuration은 동일하게 적용할 수 있다.
– tableViewFooter, tableViewHeader에도 적용할 수 있다.

– 각각의 Cell에 같은 configuration을 설정하더라도 각각의 상태에 맞게 적용된다.
– 자동적으로 상태관리가 가능하다.



Configuration 이 하는 일
– 여러 state에 대한 상태를 묘사한다. (Content, styling, metrics, behavior)
– Applied a view to render
– Composable functionality : 어느 type의 Cell나 View에도 적용시킬 수 있다.

cell.defaultContentConfiguration()

– 늘 새로운 configuration과 함께 시작할 수 있다.
(적용시킬려고하는 객체(예를들어 cell)에게 default content를 받아올 수 있다.)
– configuration을 처음 적용시킬 때만 부르는게 아니라 적용시킨 configuration을 update할 때도 불러서 꼭 ! 새롭게 update 시켜줘야한다.


두 가지 Configuration type

Background Configuration, List Content Configuration의 두 가지가 있다.

Background Configuration

List Content Configuration

– 가장 기본적인 스타일. = 우리가 생각하는 UITableView Cell Style
– Cell, Header, Footer


Configuration state

보통의 앱들이 갖게 되는 것들
– Traits(특성)
– State(editing, disabled, selected, swiped …)
– Custom state(flagged, viewModel, completed …)

이 세 가지를 Configuration State는 모두 갖고 있을 수 있고 관리할 수 있다.


– 각각의 cell은 본인만의 Configuration State를 가진다.

Configuration State의 종류
1) View Configuration State
2) Cell Configuration State


View Configuration State

– Highlighted, Selected, Disabled, Focused : Boolean Value
– Custom States : 개발자가 필요한 추가적인 State를 추가할 수 있다.


Cell Configuration State

– View Configuration State에 Cell에 필요한 State가 몇 가지 추가된 것 뿐이다.



Update configuration update

– Original Configuration은 변화하지 않고, State만 update된다.



Automatic configuration update




Cell에서 특정한 State 변경하기

– 이 method는 CollectionViewCell, TableViewCell에서만 사용할 수 있다.
cell이 처음 보여졌을 때와 state에 변화가 있었을 때 이 method가 호출된다. (binding)

– 이 method를 사용하면 update시킬 때마다 configuration을 받아와서 적용할 필요가 없다.



사용해봅시다 !

여기서 state에 따라 tintColor / color 를 변경하는 코드가 있는데,
대신에 ColorTransformer 을 사용할 수 있다.


Color Transformer

– Color Transformer는 Input Color에 Binding하고 있다가 Resolved Color로 내보내준다.



Background and content configurations

Default Configurations
– Cell, Header, Footer는 자동적으로 Defulat background configuration이 적용된다.



Content Configuration layout and self-sizing



Using Configurations with custom views

– TableView, CollectionView뿐만아니라 UIStackView처럼 일반 View에서도 똑같이 사용할 수 있다.

“WWDC 2020 | Modern cell configuration”의 1개의 생각

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중