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

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

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

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

Q&A

0回答

676閲覧

swift instagramのstoryのcube animationを横回転ではなく、縦回転にしたいとき、どこをどう変えたら良いか教えてください

animal_anny

総合スコア4

Swift

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

0グッド

0クリップ

投稿2021/07/01 12:13

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問