SwiftUIをやり始めた初心者です。
円形のわっかを順々に時間差で表示してできたら弾けるように外側に移動させたい(意味わかんないw)のですが参考になりそうなサイトが見つからず困っています。
始めたばかりなので具体的なコードと一緒に教えてくださると嬉しいです。もちろんやり方だけでも構いません。丸投げの質問と低評価をいただいたのですが、正直何からやればいいのか全くわからない状態です。参考にできそうなことなどを教えていただけると嬉しいです。
上から右回りに順番に表示して
![
矢印の方向に移動させて消したいです。
アニメーションや時間差でやるのが初めてで注文のようになってしまってすみません。
よかったら回答してくださると嬉しいです。本当すみません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/17 11:00
2020/04/17 11:08
2020/04/17 11:13
2020/04/17 11:20
回答1件
0
ベストアンサー
こんな感じでしょうか?
なんとなくで作ってみました。
SwiftUI
1struct ContentView: View { 2 @State private var viewState1 = false 3 @State private var viewState2 = true 4 5 var body: some View { 6 ZStack { 7 Circle() 8 .stroke(Color.blue) 9 .frame(width: 50, height: 50) 10 .offset(x: 0, y: self.viewState1 ? -100 : 0) 11 .opacity(self.viewState2 ? 0 : 1) 12 .animation(Animation.spring().delay(0.2)) 13 Circle() 14 .stroke(Color.blue) 15 .frame(width: 50, height: 50) 16 .offset(x: self.viewState1 ? 70 : 0, y: self.viewState1 ? -70 : 0) 17 .opacity(self.viewState2 ? 0 : 1) 18 .animation(Animation.spring().delay(0.4)) 19 20 Circle() 21 .stroke(Color.blue) 22 .frame(width: 50, height: 50) 23 .offset(x: self.viewState1 ? 100 : 0, y: 0) 24 .opacity(self.viewState2 ? 0 : 1) 25 .animation(Animation.spring().delay(0.6)) 26 27 Circle() 28 .stroke(Color.blue) 29 .frame(width: 50, height: 50) 30 .offset(x: self.viewState1 ? 70 : 0, y: self.viewState1 ? 70 : 0) 31 .opacity(self.viewState2 ? 0 : 1) 32 .animation(Animation.spring().delay(0.8)) 33 34 Circle() 35 .stroke(Color.blue) 36 .frame(width: 50, height: 50) 37 .offset(x: 0, y: self.viewState1 ? 100 : 0) 38 .opacity(self.viewState2 ? 0 : 1) 39 .animation(Animation.spring().delay(1.2)) 40 41 Circle() 42 .stroke(Color.blue) 43 .frame(width: 50, height: 50) 44 .offset(x: self.viewState1 ? -70 : 0, y: self.viewState1 ? 70 : 0) 45 .opacity(self.viewState2 ? 0 : 1) 46 .animation(Animation.spring().delay(1.4)) 47 48 Circle() 49 .stroke(Color.blue) 50 .frame(width: 50, height: 50) 51 .offset(x: self.viewState1 ? -100 : 0, y: 0) 52 .opacity(self.viewState2 ? 0 : 1) 53 .animation(Animation.spring().delay(1.6)) 54 55 Circle() 56 .stroke(Color.blue) 57 .frame(width: 50, height: 50) 58 .offset(x: self.viewState1 ? -70 : 0, y: self.viewState1 ? -70 : 0) 59 .opacity(self.viewState2 ? 0 : 1) 60 .animation(Animation.spring().delay(1.8)) 61 62 } 63 .onAppear { 64 withAnimation { 65 self.viewState1 = true 66 self.viewState2 = false 67 } 68 } 69 } 70} 71
SwiftUI
1 2.animation(Animation.spring().delay(0.2)) 3//この部分で時間差を表現しています。
投稿2020/04/18 19:25
総合スコア60
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 04:32
2020/04/23 00:56 編集
2020/04/23 04:45
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。