이미지를 2개 사용
해당 이미지를 2개 사용하는 방법
원본 / 결과
원본
결과
코드
import SwiftUI
struct asdfav: View {
var body: some View {
ZStack {
VStack {
Image("carki")
.resizable()
.scaledToFit()
.overlay(
Rectangle()
.foregroundColor(Color.black.opacity(0.4))
.overlay(
Image("carki")
.resizable()
.scaledToFit()
.mask {
Circle()
}
)
)
}
}
}
}
문제 해결
해당 문제를 해결하기 위해서 구글링의 결과로 Canvas를 찾게 됨
Canvas는 SwiftUI View에 동적인 2D 그래픽을 그리는 기능을 한다.
Canvas를 이용해 원본 이미지 위(overlay)에 Canvas로 흐림처리된 사각형을 그리고 그 사각형에서 원의 크기만큼의 영역을 지우는 방식을 사용해보기로 함
코드
var body: some View {
ZStack {
Image("carki")
.resizable()
.scaledToFit()
.overlay(
ZStack {
Canvas { context, size in
// Path
let backgroundPath = Path(roundedRect: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height / 2), cornerSize: CGSize.zero)
context.fill(backgroundPath, with: .color(.black.opacity(0.4)))
}
Circle()
.blendMode(.destinationOut)
}.compositingGroup()
)
}
[SwiftUI] CustomTextField + ToolBar 사용방법과 문제점 (0) | 2024.08.28 |
---|---|
[ Swift - MVVM ] 네비게이션 바 아이템 (0) | 2022.10.25 |
[iOS/Swift ] FSCalendar 날짜선택 관련 에러해결 (0) | 2022.08.28 |
[Swift - iOS] TableView 헤더 높이설정 (0) | 2022.08.06 |