일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- Firebase
- coreml
- Sendbird
- Apple Developer Academy
- app intents
- backend
- UITableView
- Coding Test
- SwiftUI
- Project
- cloud functions
- swift concurrency
- task.yield()
- Tuist
- ios
- tabman
- watchkit
- createml
- UIStackView
- Delegate Pattern
- Complication
- fcm
- github
- widgetkit
- WWDC22
- Flutter
- Swift
- UIDatePicker
- 코테
- Today
- Total
azhy의 iOS 이야기
[iOS] ScaleToFill / AspectFit / AspectFill 본문
2022년 9월 6일에 작성됨
contentMode
아마 작업을 하다가 본인도 모르게 contentMode를 사용을 해봤을 겁니다. 그럼 이 contentMode가 무엇이냐 ? 애플 문서에는 이렇게 정의되어 있습니다.
'A flag used to determine how a view lays out its content when its bounds change'
bounds가 변경될 때 뷰가 콘텐츠를 배치하는 방법을 결정하는 데 사용..? 이라고 합니다..
종류는 이렇게 많지만 사실 많이 사용하고 헷갈리는 친구는 ScaleToFill, AspectFit, AspectFill 이 3개입니다. 실제로 저는 이거 말고는 사용을 해보지도 않아서, 요 친구들을 한번 정리해보겠습니다.
ScaleToFill
contentMode를 따로 설정안하면 default로 ScaleToFill가 세팅이 됩니다.
ScaleToFill는 원본 이미지의 비율을 무시하고 전체 이미지가 다 나올 수 있도록 이미지를 꽉 채우는 옵션입니다.
제 프로젝트에 들어가는 이미지인데, 원본과 비교해보면 모든 이미지를 다 나오게 하려고 약간 압축? 이 된 화면을 볼 수 있습니다.
AspectFit
AspectFit는 원본 이미지의 비율만을 맞추는 옵션입니다. 따라서 이미지가 뷰를 꽉 채우지 못하는 상황이 발생할 수 있습니다.
사진을 보면 원본 사진과의 비율은 맞추는데 뷰를 가득 채우지 못해서 빈 공간이 생긴 모습을 확인할 수 있습니다.
AspectFill
AspectFill는 원본 이미지의 비율을 맞추면서 이미지를 꽉 채우는 옵션입니다. 비율을 맞추면서 채우려다 보니 이미지가 잘리는 경우도 발생합니다.
원본 이미지랑 비교해보면 비율은 똑같지만 이미지가 잘린 부분이 있다는 것을 확인할 수 있습니다.
contentMode는 상황마다 쓰는 케이스가 다 달라서 이미지의 비율이 중요하다. 이미지가 잘리면 안된다. 이런 우선순위를 두고 contentMode를 잘 설정하면 될 거 같습니다. contentMode 말고도 clipsToBounds, masksToBounds 에 대한 부분도 상당히 중요한 개념인데 이 친구들은 다음 글에서 한번 정리해보겠습니다. :)
'iOS' 카테고리의 다른 글
[iOS] URL Scheme, 다른 앱 호출하기 (구글맵, 카카오맵) (1) | 2024.11.14 |
---|---|
[iOS] clipsToBounds / masksToBounds (0) | 2024.11.13 |
[iOS] SpriteKit, 눈과 비를 내리는 효과를 만들어보자 (0) | 2024.11.13 |
[iOS] 앱 강제 업데이트 (1) | 2024.11.13 |
[iOS] 세 번째 앱 출시 후기 (1) | 2024.11.13 |