前提・実現したいこと
ここに質問の内容を詳しく書いてください。
youtubeでhttps://youtu.be/NTun83toSQQ 見ながらコードを写しました。
ただ自分がしたいことは、右方向にスワイプさせるのではなく、縦方向の下
(xy座標で言えば、x軸正の方向ではなく、y軸負の方)へ動かしたいと思います。
この時、どこを変更すればいいのでしょうか
ご教授ください
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
import SwiftUI struct ContentView: View { var body: some View { Home() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } struct Home : View { var width = UIScreen.main.bounds.width var body : some View{ TabView{ ForEach(data){story in GeometryReader{g in ZStack{ LinearGradient(gradient: .init(colors: [Color("top"),story.color]), startPoint: .top, endPoint: .bottomTrailing).cornerRadius(10) Image(story.story) .resizable() .aspectRatio(contentMode: .fit) .padding(.horizontal) VStack(alignment: .leading, spacing: 12){ ZStack(alignment: Alignment(horizontal: .leading, vertical: .center), content: { Capsule() .fill(Color.black.opacity(0.3)) .frame(height: 2.5) Capsule() .fill(Color.white) .frame(width: story.offset,height: 2.5) }) HStack(spacing: 12){ Image(story.story) .resizable() .aspectRatio(contentMode: .fill) .frame(width: 40, height: 40) .clipShape(Circle()) Text(story.name) .foregroundColor(.white) Text(story.time) .foregroundColor(.white) } Spacer() } .padding(.all) } .frame(width: g.frame(in: .global).width, height: g.frame(in:.global).height) .rotation3DEffect(.init(degrees: getAngle(xOffset: g.frame(in: .global).minX)), axis: (x:0.0, y:1.0, z: 0.0), anchor: g.frame(in: .global).minX > 0 ? .leading : .trailing, perspective: 2.5) } } } .tabViewStyle(PageTabViewStyle(indexDisplayMode: .never)) .background(Color.black.edgesIgnoringSafeArea(.all)) } func getAngle(xOffset: CGFloat)-> Double{ let tempAngle = xOffset / (width / 2) let rotationDegree: CGFloat = 25 return Double(tempAngle * rotationDegree) } } struct Story : Identifiable { var id = UUID().uuidString var story : String var name : String var time : String var offset : CGFloat var color : Color } var data = [ Story(story: "p1", name: "catherine", time: "122h", offset: 100, color: .yellow), Story(story: "p2", name: "ijustine", time: "122h", offset: 200, color: .yellow), Story(story: "p3", name: "emily", time: "122h", offset: 50, color: .yellow), Story(story: "p4", name: "juliana", time: "122h", offset: 250, color: .yellow), Story(story: "p5", name: "Emma", time: "122h", offset: 80, color: .yellow) ]
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー