❗️문제 원인
enum SheetPosition: CGFloat, CaseIterable {
case min = 150
case mid = UIScreen.main.bounds.height * 0.4 // ❌ 이 줄
case max = UIScreen.main.bounds.height * 0.85 // ❌ 이 줄
}
❗️ 에러 메시지:
Raw value for enum case must be a literal
→ enum의 raw value는 상수 리터럴만 가능해.
UIScreen.main.bounds.height는 런타임에 계산되는 값이라 불가능해.
✅ 해결 방법
런타임 계산이 필요한 값을 enum 안에서 computed property로 처리하는 구조로 변경
enum SheetPosition: CaseIterable {
case min
case mid
case max
var height: CGFloat {
switch self {
case .min:
return 150
case .mid:
return UIScreen.main.bounds.height * 0.4
case .max:
return UIScreen.main.bounds.height * 0.85
}
}
}
'Project > HiddenGem' 카테고리의 다른 글
🤔 탭바는 가리지 않고, 커스텀 Bottom Sheet처럼 동작하는 UI를 원한다면? (0) | 2025.06.04 |
---|---|
🤔 뷰 컨트롤러가 모달로 띄워졌는지 어떻게 알 수 있나? (0) | 2025.06.02 |
🗺️ 지도 표시하기 (0) | 2025.06.02 |
🔨 데이터 타입 변환 및 통합하기 (0) | 2025.05.29 |
✅ UICollectionViewCell을 공용으로 사용하려면? (데이터 타입도 다를때) (0) | 2025.05.27 |