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

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

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

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Q&A

0回答

377閲覧

SwiftUIの条件下での動画表示する方法

scope

総合スコア7

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

0グッド

0クリップ

投稿2022/04/18 15:57

編集2022/04/18 16:16

**SwiftUIである条件で動画表示したい
例)
SwiftUIの勉強でじゃんけんアプリを作っています。
ある条件で動画を出したいです。
現在if条件でテキスト「あなたの勝ち」を表示しています。
このテキストの代わりに画面全体に動画を表示したいです。

動画はcontentViewの下にあります。また、別ビューでも動画再生しております。
テキスト「あなたの勝ち」の代わりに動画を表示するにはどうすれば良いでしょうか?
そもそも、if条件でテキストの代わりに動画を指定できるのでしょうか。

自分で試したこと
テキスト「あなたの勝ち」の代わりに動画mp4を置き換えれば動画が表示されると思っていました。

If (A == B){result = “あなたの勝ち”;}
else if ....
Text“あなたの勝ち”の代わりに別viewで作成している動画viewのコードを全部入れたりしました。

全くの勉強不足ですみません。
宜しくご教授お願い致します。
編集

**

SwiftUI

1import SwiftUI 2import AVKit 3import AVFoundation 4 5 6struct SinglePlayView: View { 7 @State private var playerHand = 0 8 @State private var computerHand = 0 9 @State private var text = "Janken" 10 @State private var player = 0 11 12 13 var body: some View { 14 ZStack { 15//.resizable() 16 Color.white 17 .ignoresSafeArea() 18 19 VStack { 20 HStack { 21 22 /** Your Partner */ 23 Image("Sara") 24 .renderingMode(.original) 25 .resizable() 26 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 27 .scaledToFit() 28 29 /** 相手の手 */ 30 if(computerHand == 0) { 31 Image("Rock") 32 .resizable() 33 .padding(.all) 34 .scaledToFit() 35 .rotationEffect(Angle(degrees: 180)) 36 } 37 if(computerHand == 1) { 38 Image("Scissors") 39 .resizable() 40 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 41 .scaledToFit() 42 .rotationEffect(Angle(degrees: 180)) 43 } 44 if(computerHand == 2) { 45 Image("Paper") 46 .resizable() 47 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 48 .scaledToFit() 49 .rotationEffect(Angle(degrees: 180)) 50 } 51 } 52 53 54 /** 文字 */ 55 Text(text) 56 .font(.title) 57 58 HStack { 59 /** 自分の手 */ 60 if(playerHand == 0) { 61 Image("Rock") 62 .resizable() 63 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 64 .scaledToFit() 65 } else if(playerHand == 1) { 66 Image("Scissors") 67 .resizable() 68 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 69 .scaledToFit() 70 } else if(playerHand == 2) { 71 Image("Paper") 72 .resizable() 73 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 74 .scaledToFit() 75 } 76 77 /** Your Face */ 78 Image("You") 79 .resizable() 80 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 81 .scaledToFit() 82 83 } 84 85 /** ボタン */ 86 HStack { 87 Button(action: { 88 print("Rock") 89 self.playerHand = 0; 90 self.computerHand = chooseComputerHand(); 91 self.text = determineVictoryOrDefeat(playerHand:self.playerHand, computerHand:self.computerHand) 92 93 }) { 94 Image("Rock") 95 .renderingMode(.original) 96 .resizable() 97 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 98 .scaledToFit() 99 100 101 } 102 103 Button(action: { 104 print("Scissors") 105 self.playerHand = 1; 106 self.computerHand = chooseComputerHand(); 107 self.text = determineVictoryOrDefeat(playerHand:self.playerHand, computerHand:self.computerHand) 108 }) { 109 Image("Scissors") 110 .renderingMode(.original) 111 .resizable() 112 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 113 .scaledToFit() 114 115 116 } 117 Button(action: { 118 print("Paper") 119 self.playerHand = 2; 120 self.computerHand = chooseComputerHand(); 121 self.text = determineVictoryOrDefeat(playerHand:self.playerHand, computerHand:self.computerHand) 122 }) { 123 Image("Paper") 124 .renderingMode(.original) 125 .resizable() 126 .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/) 127 .scaledToFit() 128 } 129 } 130 } 131 } 132 } 133 134 func chooseComputerHand() -> Int { 135 let random = Int.random(in: 0..<3) 136 let computerHand = random; return computerHand 137 } 138 func determineVictoryOrDefeat(playerHand:Int, computerHand:Int) -> String { 139 var result = "" 140 var playerHandTemp = playerHand 141 playerHandTemp+=1 142 143 if (playerHand == computerHand) { 144 result = "Pon……Draw"; 145 } 146 else if ((playerHand == 2 && computerHand == 0)||(playerHandTemp == computerHand)) { 147 result = "Pon……You Win!";  **こちらのテキストを動画で表示したい** 148 } 149 else { 150 result = "Pon……You Lost!"; 151 } 152 return result 153 } 154} 155 156struct SinglePlayView_Previews: PreviewProvider { 157 static var previews: some View { 158 SinglePlayView() 159 } 160 }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問