ScrollView, LazyVStack, LazyHStack, UIScreen.main.bounds, ForEach-in
PhotoData.swift
import Foundation struct PhotoData: Identifiable { var id = UUID() var imageName:String var title:String } var photoArray = [ PhotoData(imageName: "IMG_0463", title: "台風で流された親柱"), PhotoData(imageName: "IMG_0495", title: "横須賀ヴェルニー記念講演"), PhotoData(imageName: "IMG_1378", title: "恋人たちの湘南平テレビ塔"), PhotoData(imageName: "IMG_1739", title: "赤い漁具倉庫1"), PhotoData(imageName: "IMG_1742", title: "赤い漁具倉庫2"), PhotoData(imageName: "IMG_2233", title: "江ノ電501系"), PhotoData(imageName: "IMG_2406", title: "茅ヶ崎漁港引き上げモーター小屋"), PhotoData(imageName: "IMG_2407", title: "茅ヶ崎漁港第二えぼし丸"), PhotoData(imageName: "IMG_2864", title: "相模川河口調整水門"), PhotoData(imageName: "IMG_2909", title: "つくばエキスポセンター H2ロケット") ]
PhotoView.swift
import SwiftUI struct PhotoView: View { var photo:PhotoData var body: some View { VStack { Image(photo.imageName) .resizable() .aspectRatio(contentMode: .fit) Text(photo.title) .bold() .padding(.top, 10) .padding(.bottom, 20) } .background(Color(red: 0.3, green: 0.8, blue: 0.5)) .cornerRadius(8) } } struct PhotoView_Previews: PreviewProvider { static var previews: some View { PhotoView(photo:photoArray[0]) } }
写真データを取り込んでスクロール表示する
struct ContentView: View { var body: some View { ScrollView { LazyVStack(alignment: .center, spacing: 20){ ForEach(photoArray) { photoData in PhotoView(photo:photoData) } } }.padding(.horizontal) } }
うおおおおおおおおお
これは凄いな