搞定名称和位置 view 后,咱们来给地标添加图片。html
这不须要添加不少代码,只须要建立一个自定义 view,而后给图片加上遮罩、边框和阴影便可。swift
首先将图片添加到项目的 asset catalog
中。编辑器
SwiftUI 官方教程ide
4.1 在项目的 Resources
文件夹中找到 turtlerock.png
,将它拖到 asset catalog
的编辑器中。 Xcode 会给图片建立一个 image set
。post
接下来,建立一个新的 SwiftUI
view 来自定义 image view。ui
4.2 选择 File
> New
> File
打开模板选择器。在 User Interface
中,选中 SwiftUI View
,而后单击 Next
。将文件命名为 CircleImage.swift
,而后单击 Create
。url
如今准备工做已完成。spa
SwiftUI教程3d
4.3 使用 Image(_:)
初始化方法将 text view 替换为 Turtle Rock
的图片。code
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
造成 view。
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 point 的阴影。
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() } }