質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

968閲覧

swift初心者 storyのように横にスワイプするのではなく、tiktokのように縦にスワイプさせたい

animal_anny

総合スコア4

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/07/05 14:24

編集2021/07/07 15:50

前提・実現したいこと

初心者です。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) ]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/07/05 22:37

TabView って横にスワイプなんてされましたっけ? 実際のコードを見せてもらえませんか?
animal_anny

2021/07/07 15:33

一部だけ抜粋させていただきました。 参考にしたのはhttps://youtu.be/NTun83toSQQです。 これをtiktokのように縦に回転させたいです。 これだけで意図が伝わったでしょうか? ご教授ください。お願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問