前提・実現したいこと
初心者です。storyのように横にスワイプするのではなく、tiktokのように縦にスワイプさせたい方針だけでも教えてください
前提・実現したいこと
参考にしたのはhttps://youtu.be/NTun83toSQQです。
これをtiktokのように縦に回転させたいです。
発生している問題・エラーメッセージ
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) ]
TabView って横にスワイプなんてされましたっけ? 実際のコードを見せてもらえませんか?
一部だけ抜粋させていただきました。
参考にしたのはhttps://youtu.be/NTun83toSQQです。
これをtiktokのように縦に回転させたいです。
これだけで意図が伝わったでしょうか?
ご教授ください。お願いします。
この質問の答えの Vertical variant ってやつが参考になるかも?
https://stackoverflow.com/questions/58388071/how-can-i-implement-pageview-in-swiftui
あなたの回答
tips
プレビュー