SwiftUI 공식 튜토리얼 (4 개)
4. 사용자 정의 이미지보기
뷰의 이름과 위치를 얻기 후에, 우리는 랜드 마크에 사진을 추가해야합니다.
단지 사용자 지정보기를 만든 다음 그림 마스킹, 테두리에 추가하고 음영이 될 수있다, 많은 코드를 추가 할 필요가 없습니다.
첫째, 프로젝트에 사진을 추가 asset catalog
한다.
SwiftUI 공식 튜토리얼
4.1 프로젝트 Resources
폴더를 찾을 수 turtlerock.png
그것은 드래그 asset catalog
편집기. 엑스 코드는 그림을 생성합니다 image set
.
다음으로, 새로운 생성 SwiftUI
이미지보기를 사용자 정의보기를.
4.2 선택 File
> New
>이 File
템플릿 선택 화면을 엽니 다. 에서 User Interface
선택, SwiftUI View
다음을 클릭합니다 Next
. 파일 이름을 CircleImage.swift
입력 한 다음 확인을 누릅니다 Create
.
이제 준비 작업이 완료되었습니다.
SwiftUI 자습서
4.3 Image(_:)
초기화 방법은 텍스트보기로 대체됩니다 Turtle Rock
사진.
CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
}
}
struct CircleImage_Preview: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
4.4 호출 .clipShape(Circle())
원에 이미지를 트리밍.
SwiftUI 자습서
Circle
그것은, 마스크의 형태로도 할 수 있습니다 stroke
또는 fill
양식보기.
CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(Circle())
}
}
struct CircleImage_Preview: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
4.5 다른 생성 gray stroke
년대를 circle
하는 것에 따라, overlay
영상 프레임을 형성하는 화상에 첨가 하였다.
CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(Circle())
.overlay(
Circle().stroke(Color.gray, lineWidth: 4))
}
}
struct CircleImage_Preview: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
4.6 그 다음은 10 점의 그림자 반경을 추가 할 수 있습니다.
CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(Circle())
.overlay(
Circle().stroke(Color.gray, lineWidth: 4))
.shadow(radius: 10)
}
}
struct CircleImage_Preview: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
4.7 将边框的颜色改为 white
,完成 image viewSwiftUI教程
CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(Circle())
.overlay(
Circle().stroke(Color.white, lineWidth: 4))
.shadow(radius: 10)
}
}
struct CircleImage_Preview: PreviewProvider {
static var previews: some View {
CircleImage()
}
}