목록iOS (42)
study record
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b93Vpa/btrzFGOewYg/ygjlGY9yPK0LmhhPQiIuD1/img.png)
공식 문서 https://developer.apple.com/documentation/uikit/uitableview를 공부하며 작성한 글입니다. UITableView 하나의 열과 행들을 사용하여 데이터를 표현하는 View @MainActor class UITableView : UIScrollView Overview iOS 에서 Table views는 하나의 열에서 컨텐츠를 수직으로 스크롤링하는 행들로 보여준다. 테이블의 각 행들은 앱의 컨텐츠들을 포함한다. 테이블들은 앱에서 계층적으로 조직화, 구조화되어 있는 데이터에 흔하게 사용된다. 계층적 데이터를 포함하는 앱들은 종종 테이블을 네비게이션 뷰 컨트롤러와 함께 사용한다. 계층의 다른 레벨들 사이에서 네비게이션을 활성화하여 사용한다. 예시로 설정 앱은 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bMSV8x/btrzsOThUd5/dZ4O0W9ZUMpeMlZzJKST5k/img.png)
공식문서 https://developer.apple.com/documentation/uikit/views_and_controls/table_views 를 읽고 정리한 글입니다. Table Views 커스텀가능한 행들과 하나의 칼럼으로 데이터를 보여줍니다. Overview 테이블뷰는 수직 방향으로 스크롤링가능한 컨텐츠를 하나의 열로 보여줍니다. 행들과 섹션들로 나누어질 수 있습니다. 각 테이블의 행들은 앱에서 관련된 정보의 하나의 조각을 보여줍니다. 섹션들은 개발자가 관련된 열들을 함께 묶을 수 있도록 도와줍니다. 예를 들어, 연락처 앱은 테이블을 사용자들의 연락처들의 이름을 보여주기 위해 테이블을 사용합니다. TableViews는 많은 다른 객체들 사이의 협력으로 이루어집니다. 다음의 요소들이 그 객체들..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bWvdrq/btryBrRrwVI/sqFlGmCscuV3aQcKGMmvWk/img.png)
레이아웃 사이클 iOS 레이아웃 사이클은 세가지 단계로 이루어진다. 1. 제약 조건 (Constraints) - 오토레이아웃의 제약 조건 갱신 - 제약 조건은 뷰를 실제로 배치하는데에는 영향을 주지 않는다. - 제약 조건의 갱신은 뷰 계층구조에서 하위뷰에서 상위뷰의 순서로 이루어진다. 2. 레이아웃 (Layout) - 제약 조건을 바탕으로 레이아웃을 갱신한다. - 레이아웃은 구체적인 뷰의 프레임이다. - 이 단계에서 뷰의 Center와 Bounds를 결정한다. - 레이아웃의 갱신은 뷰 계층구조에서 상위뷰에서 하위뷰의 순서로 이루어진다. 3. 그리기 (Draw) - 레이아웃 단계에서 구한 프레임을 CoreGraphics를 사용하여 화면에 그린다. 뷰컨트롤러의 레이아웃 사이클 1. loadView() IB에..
IntrinsicContentSize 본질적인 콘텐츠 크기이다. 대부분의 view들은 기본적으로 컨텐츠 크기만큼의 size를 가지고 있다. UILabel, UIButton은 오토 레이아웃으로 구현할 때 제약사항으로 width와 height를 추가하지 않아도 오류가 나지 않는 이유는 intrinsicContentSize를 가지기 때문이다. UIView 같은 경우는 IntrinsicContentSize를 가지지 않으며, ImageView,TextView는 컨텐츠에 따라 변화한다. invalidateIntrinsicContentSize() view의 컨텐츠의 크기가 바뀌었을 때 intrinsicContentSize프로퍼티를 통해 size를 갱신하고 그에 맞게 오토레이아웃이 업데이트되도록 만들어주는 메소드이다...