SwiftUI公式チュートリアル(四)
4.カスタムイメージを表示
ビューの名前と場所を取得した後、我々はランドマークに画像を追加する必要があります。
ちょうどカスタムビューを作成し、画像のマスキング、ボーダーに追加し、シェーディングをすることができ、多くのコードを追加する必要はありません。
まず、プロジェクトに写真を追加 asset catalog
しました。
SwiftUI公式チュートリアル
4.1プロジェクト Resources
フォルダを見つける turtlerock.png
と、それをドラッグし asset catalog
、エディタ。Xcodeは絵を作成します image set
。
次に、新たに作成し SwiftUI
た画像の表示をカスタマイズするためのビューを。
4.2選択 File
> New
> File
テンプレートセレクタを開きます。で User Interface
選択し、 SwiftUI View
し、をクリックします Next
。ファイルに名前を付け CircleImage.swift
、[OK]をクリックします 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()
}
}