[SwiftUI] Deprecated 되어버린 cornerRadius를 대체할 방법

2024. 10. 13. 08:35·[Programming Language]/[SwiftUI]

[머릿말]

테두리를 부드럽게 설정할 수 있는 메서드, cornerRadius는 iOS 18.1부터 deprecated 되었다... 왜 deprecated 되었을까

관련해서 StackOverflow를 보면 아쉬워하는 사람이 꽤나 존재한다.

그렇지만, 이제는 deprecated 되버렸으니 다른 방법을 사용해야 한다!


⦿ cornerRadius 란?

공식 문서에서의 내용은 다음과 같다.

"명시된 corner radius값으로 뷰의 경계를 자른다."

iOS 13.0부터 오랫동안 사용된 메서드인데 곳곳에서 deprecated 되었다고 알려주고 있다...🤣

 

그래도 어떻게 사용하는 것인지는 한번 살펴보도록 하자!

import SwiftUI

struct ContentView: View {
    
    var body: some View {
        VStack {
            
            Text("모두들")
                .font(.largeTitle)
                .fontWeight(.bold)
                .padding()
                .background(Color.green)
                .cornerRadius(30)
            
            Text("화이팅입니다!")
                .font(.largeTitle)
                .fontWeight(.bold)
                .padding()
                .background(Color.blue)
                .cornerRadius(50)
            
        }
    }
}

#Preview {
    ContentView()
}

네 모서리에 곡률이 적용된 모습

그저 적용할 수치만 입력하면 되는 아주 간단한 형태로 사용할 수 있는 메서드'였던' 것이다...

 

⦿ cornerRadius 를 대체하는, clipShape(_:style:)

공식 문서에서 권장하고 있는 것 중 clipShape를 사용하여 cornerRadius를 대체하여 보겠다. clipShape에 대한 공식 문서의 내용은 다음과 같다.

"뷰에 잘린 모양을 설정한다."

모양? 맞다. 이 메서드는 뷰에 사각형, 원 등의 모양을 설정할 수 있다. 포토샵으로 치면 마스크(mask) 기능인 것이다. 매개변수로 사용할 도형을 전달하면 된다.

 

이제 이 메서드를 사용하여 cornerRadius를 구현해보도록 하겠다.

 

import SwiftUI

struct ContentView: View {
    
    var body: some View {
        VStack {
            
            Text("모두들")
                .font(.largeTitle)
                .fontWeight(.bold)
                .padding()
                .background(Color.green)
                .clipShape(RoundedRectangle(cornerRadius: 50))
            
            Text("화이팅입니다!")
                .font(.largeTitle)
                .fontWeight(.bold)
                .padding()
                .background(Color.blue)
                .clipShape(RoundedRectangle(cornerRadius: 20))
            
        }
    }
}

#Preview {
    ContentView()
}


대체 방법도 그렇게 번거롭진 않지만 그래도 한번에 적용할 수 있는 cornerRadius는 왜 사라진 것일까...

그렇다면 RoundedRectangle에는 왜 cornerRadius가 그대로 남아있는 것이고..?

저작자표시 비영리 (새창열림)

'[Programming Language] > [SwiftUI]' 카테고리의 다른 글

[SwiftUI] 앱 아이콘(Icon) 설정 방법  (1) 2024.10.15
[SwiftUI] TabView란? 사용 예시, 배경색 및 아이템 색 변경 등  (0) 2024.10.14
[SwiftUI] @SceneStorage(화면 저장소) vs @AppStorage(앱 저장소)  (0) 2024.10.12
[SwiftUI] Deprecated된 tabItem(_:)을 대신하여 Tab()을 사용할 수 있다  (5) 2024.10.06
[SwiftUI] OutlineGroup과 DisclosureGroup의 차이점  (4) 2024.10.05
'[Programming Language]/[SwiftUI]' 카테고리의 다른 글
  • [SwiftUI] 앱 아이콘(Icon) 설정 방법
  • [SwiftUI] TabView란? 사용 예시, 배경색 및 아이템 색 변경 등
  • [SwiftUI] @SceneStorage(화면 저장소) vs @AppStorage(앱 저장소)
  • [SwiftUI] Deprecated된 tabItem(_:)을 대신하여 Tab()을 사용할 수 있다
Semincolon
Semincolon
It seems small, that semicolon is a big deal.
  • Semincolon
    Semincolon
    Semincolon
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • [Programming Language] (78)
        • [JSP] (6)
        • [Swift] (23)
        • [SwiftUI] (16)
        • [Python] (22)
        • [C언어] (6)
        • [Kotlin] (4)
        • [C#] (1)
      • [Frame Work] (5)
        • [Flutter] (4)
        • [Spring Boot] (1)
      • [Projects] (3)
        • [Android][Kotlin] 공유 캘린더(20.. (1)
        • [Unity] 인내의 숲(2024.03) (2)
      • [DB] (15)
        • - Oracle (15)
      • [Programmers] (25)
        • - SQL (25)
      • [ETC] (2)
      • Today's Learning (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Semincolon
[SwiftUI] Deprecated 되어버린 cornerRadius를 대체할 방법
상단으로

티스토리툴바