xcode:Version 11.5
macOS Catalina 10.15.6
の環境にてアプリの制作をしています。
超初心者です。
Quizのアプリを制作しております。
そのQuiz画面を全問フルスクリーンする方法はありますでしょうか?
First View Controller からQuizに画面遷移するSegueの設定は現在
Storyboard Segueにて
Kind> Present Modally
Presentation> Full Screen
Transition> Cover Vertical
となっており1問目の表示はFullScreenとなりますが2問目からはFull Screenになりません。
現在問題文の最後の方になりますと次の問題うつる時の表示時間が重くなり、遅くなっています。
問題文全部をFullScreenで表示できれば遅くなる問題が解決できるのではないかと思いまして質問いたします。
どうぞよろしくお願いいたします。
!
Q2以降FullScreenではなくなります。Q2以降もFUllScreenで表示する方法はありますか?
swift
1import UIKit 2import AudioToolbox 3 4 5class HistoryQuestionViewController: UIViewController { 6 7 var questionData: HistoryQuestionData! 8 9 10 11 @IBOutlet weak var questionNoLabel: UILabel! 12 @IBOutlet weak var questionTextView: UITextView! 13 14 @IBOutlet weak var answer1Button: UIButton! 15 @IBOutlet weak var answer2Button: UIButton! 16 @IBOutlet weak var answer3Button: UIButton! 17 @IBOutlet weak var answer4Button: UIButton! 18 19 20 @IBOutlet weak var correctImageView: UIImageView! 21 @IBOutlet weak var IncorrectImageView: UIImageView! 22 23 @IBOutlet weak var goToTitle: UIButton! 24 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 29 // Do any additional setup after loading the view. 30 31 32 //初期データ設定処理。全画面で設定済みのquestionDataから値を取り出す。 33 questionNoLabel.text = "Q(questionData.questionNo)" 34 questionTextView.text = questionData.question 35 answer1Button.setTitle(questionData.answer1, for: UIControl.State.normal) 36 answer2Button.setTitle(questionData.answer2, for: UIControl.State.normal) 37 answer3Button.setTitle(questionData.answer3, for: UIControl.State.normal) 38 answer4Button.setTitle(questionData.answer4, for: UIControl.State.normal) 39 40 } 41 42 @IBAction func tapAnswer1Button(_ sender: Any) { 43 questionData.userChoiceAnswerNumber = 1 44 goNextQuestionWithAnimation() 45 } 46 47 @IBAction func tapAnswer2Button(_ sender: Any) { 48 questionData.userChoiceAnswerNumber = 2 49 goNextQuestionWithAnimation() 50 } 51 52 @IBAction func tapAnswer3Button(_ sender: Any) { 53 questionData.userChoiceAnswerNumber = 3 54 goNextQuestionWithAnimation() 55 } 56 57 @IBAction func tapAnswer4Button(_ sender: Any) { 58 questionData.userChoiceAnswerNumber = 4 59 goNextQuestionWithAnimation() 60 } 61 62 //次の問題にアニメーション付きで進む 63 func goNextQuestionWithAnimation() { 64 //正解しているか判定する 65 if questionData.isCorrect() { 66 //正解のアニメーションを再生しながら次の問題へ遷移する 67 goNextQuestionWithCorrectAnimation() 68 } else { 69 //不正解のアニメーションを再生しながら次の問題へ遷移する。 70 goNextQuestionWithIncorrectAnimation() 71 72 } 73 } 74 75 //次の問題に正解のアニメーション付きで遷移する 76 func goNextQuestionWithCorrectAnimation() { 77 //正解を伝える音を鳴らす 78 AudioServicesPlayAlertSound(1025) 79 80 //アニメーション 81 UIView.animate(withDuration: 1.0, animations: { 82 //アルファ値を1.0に変化させる(初期値はStoryboardで0.0に設定ずみ) 83 self.correctImageView.alpha = 1.0 84 }) { 85 (Bool) in self.goNextQuestion() //アニメーション完了後に次の問題に進む 86 87 } 88 } 89 90 //次の問題に不正解のアニメーション付きでする 91 func goNextQuestionWithIncorrectAnimation() { 92 93 //不正解を伝える音を鳴らす 94 AudioServicesPlayAlertSound(1006) 95 96 //アニメーション 97 UIView.animate(withDuration: 1.0, animations: { 98 //アルファ値を1.0に変化させる(初期値はStoryboardで0.0に設定ずみ) 99 self.IncorrectImageView.alpha = 1.0 100 }) { 101 (Bool) in self.goNextQuestion() //アニメーション完了後に次の問題に進む 102 103 } 104 } 105 106 func goNextQuestion() { 107 //問題文の取り出し 108 guard let nextQuestion = HistoryQuestionDataManager.sharedInstance.nextQuestion() else { 109 //問題文がなければ結果画面へ遷移する 110 //StoryboardのIdentifierに設定した値(result)を指定して 111 //ViewControllerを生成する 112 if let resultViewController = storyboard?.instantiateViewController(withIdentifier: "historyResult") as? HistoryResultViewController { 113 //Storyboardのsegueを利用しない明示的な画面遷移処理 114 present(resultViewController, animated: true, completion: nil) 115 } 116 return 117 } 118 119 if let nextQuestionViewController = 120 storyboard?.instantiateViewController(withIdentifier: "historyQuestion") 121 as? HistoryQuestionViewController { 122 nextQuestionViewController.questionData = nextQuestion 123 present(nextQuestionViewController, animated: true, 124 completion: nil) 125 } 126 } 127 128 129}
回答1件
あなたの回答
tips
プレビュー