오늘은 테이블뷰를 공부하던 중 imageView가 동그랗게 잘리지 않는 문제의 원인을 파악해 보기 위해View Drawing Cycle에 대해서 공부해보려고 한다. (제가 공부하기 위해 작성한 것이므로 여러 개념들이 나올 수 있으며 틀린 내용이 있다면 알려주세요!)🤔 문제원인self.profileImageView.layer.cornerRadius = self.profileImageView.frame.width / 2 분명 이미지 뷰의 넓이만큼 2로 나눠서 원의 형태로 이미지 뷰가 만들어지게 구현을 했지만 막상 빌드해 보면 아래 사진처럼 뭔가 마름모 모양의 형태로 구현이 되었다. 근데 스크롤을 하다보면 또 정상적으로 원의 형태가 나오게 되어 실행 시점에 문제가 있는거 같아 DispatchQueue.ma..
TableView에서 커스텀 셀을 다룰 때 awakeFromNib, init, prepareForReuse의 역할이 비슷해서 언제 써야 하는지 헷갈릴 때가 많았다. 따라서 오늘은 해당 개념들을 다시 정리하고 왜 이런 구조가 필요한지 분석해보고자 한다. (제가 공부하기 위해 작성한 것이므로 여러 개념들이 나올 수 있으며 틀린 내용이 있다면 알려주세요!) ✏️ 재사용 메커니즘TableView에서 1000개의 데이터를 보여주는 리스트가 있다고 가정했을 때 이 1000개의 셀이 모두 메모리에 생성되는 방식일까? 디자인에 따라 다르겠지만 아이폰 설정 창의 셀 크기를 참고해보면 화면에 보이는 셀은 10개 정도의 셀인데, 나머지 셀을 미리 만들어두는 건 메모리 낭비를 발생한다. 심지어 몇만개의 셀이 존재할 수..
AutoLayout은 UIKit에서 UI를 구성할 때 기본적이면서 제일 중요한 핵심적인 지식이다.AutoLayout이 무엇인지, 왜 필요한지 알아보자! 💡 Auto Layout이란? 오토레이아웃은 constraint를 사용해서 뷰의 크기, 위치, 간격등을 정의하여 크기가 바뀌거나 방향이 바뀔 때에도 설정한 제약을 만족시키도록 레이아웃이 자동으로 배치된다. 공식문서에서도 화면의 크기와 위치를 Constraints를 통해 동적으로 계산한다고 설명되어 있다. 즉 frame처럼 고정된 너비를 사용하는게 아니라 safeArea나 다른 객체로부터(Image, Label, StackView... 등등) 상대적으로 제약을 줘서 사용하도록 하는 것이다! SwiftUI로 따지면 가로 영역의 너비에 padding값을 주..
textfield에 이미지 이름을 검색했을 때 해당 이미지를 UIImageView를 사용해서 띄우는 기능을 구현해 보자! 1. 스토리보드 먼저 만들어주기 main 스토리보드에 Label, textField, UIImageView를 추가해 줬다. 불러올 이미지가 내가 스토리보드에서 설정한 UIImageView 규격에 꽉 차도록 나타났으면 해서 content Mode를 Aspect Fill로 맞추어 주었다. 이제 ViewController파일에서 핵심 기능인 textField와 UIImageView를 outlet으로 연결시켜 주자. 2. 필요한 변수 선언 var dog: UIImage? var karina: UIImage? var Lany: UIImage? var maru: UIImage? var oasis..
Searchbar와 관련된 프로젝트를 하던 도중 해당 동작에 대한 기능의 메서드들이 다 정리되어 있어 가져다 썼었지만, 코드 분석을 하는 도중 왜 같은 tableview인데 쓰임이 다르지?에 대한 의문이 들어 공부하고자 한다. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) - datasource 메서드에 해당된다. datasource는 tableview를 생성하고 수정하는데 필요한 정보를 테이블 뷰에 저장한다. 즉 데이터를 받아와 뷰를 그린다. 공식문서를 참고하니 numberOfSections가 tableview의 섹션수를 반환하도록 data source에 요청한다고 되어있다. 즉 각 섹션에 표시할..
- Total
- Today
- Yesterday
- SWIFT
- Task
- prepareForReuse
- XCTest
- closure
- rxswift
- 스위프트
- 백준
- CoreData
- Fastlane
- ios
- internal Combine
- Xcode
- swiftUI
- combine
- foundation models
- 코딩테스트
- detached task
- Swift Format
- 프로그래머스
- asyne-let
- SnapshotTest
- UITest
- Swift Concurrency
- 클로저
- ObservableObject
- awakeFromNib
- UIKit
- unstructed task
- group tasks
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |