Search
✂️

이미지 대각선으로 자르기

부제
카테고리
SwiftUI
세부 카테고리
커스터마이징
Combine 카테고리
최종편집일
2022/09/20 08:17
작성중
관련된 포스팅
생성 일시
2022/07/16 15:56
태그
안녕하세요 ~ iOS 개발자 루크입니다
오늘은 이미지의 모양을 대각선으로 자른 뷰를 만들어 보도록 하겠습니다

순서

1.
모양을 만든다
2.
clipshape 메서드를 사용해서 모양대로 자른다.

1. Path - 모양 만들기

참고
Path는 그 자체로 View
위치 값을 가진 선, 곡선 및 기타 정보를 가진 목록
Shape는 다른 정보를 미리 알 수 없죠. Shape 내부에 path(in:) 메서드가 호출이 끝나야 최종 적인 사이즈를 알 수 있습니다.

2. 모양대로 자르기 - clipshape

Sets a clipping shape for this view.
원하는 모양으로 뷰를 자를 수 있음.
shape
The clipping shape to use for this view. The shape  fills the view’s frame, while maintaining its aspect ratio.
style
The fill style to use when rasterizing shape .
.clipShape(자르고 싶은 모양)
Swift
복사

실전 예제

위와 같이 뷰의 대각선을 가로지르는 레이어를 가진 이미지를 만들어 보도록 하겠습니다
먼저, 이미지를 마스킹할 Shape 를 그려줍니다
struct DiagonalFrame: Shape { func path(in rect: CGRect) -> Path { var path = Path() path.move(to: CGPoint(x: 0, y: 200)) // 2. path.addLine(to: CGPoint(x: 100, y: 0)) // 3. path.addLine(to: CGPoint(x: 300, y: 0)) path.addLine(to: CGPoint(x: 300, y: 300)) path.addLine(to: CGPoint(x: 0, y: 300)) //path 를 닫아주어야함. path.closeSubpath() return path } }
Swift
복사
이렇게 커스터마이징한 Shape
clipshape 메서드를 활용해 이미지 뷰를 clip 해줍시다
Image("boombap") .resizable() .aspectRatio(contentMode: .fit) .clipShape( DiagonalFrame() )
Swift
복사

결과