前提・実現したいこと
whileでループしたいのに override func viewDidLoad() { }内にボタンが設置できず、逆にcrass{}内でwhileを使おうとするとエラーが発生します。
後者の原因は以下の記事によるものだと思いますが前者の問題がわかりません。
https://qiita.com/hyoutann/items/76513fc40ab5881f84a1
コードはまだ未完成ですが、実現したいシステムの内容を以下に。全て書き綴るよりも先にエラーを解消したいと考えました。
自分が作っているアプリは、画像を表示してそれが見えるか否かを判断し、ボタンを押すといったものです。A1の位置に画像を表示→ボタンを押すと今度はB2の座標に画像が表示→繰り返して4点全て見えたらwhileが終了するシステムを考えています。
方法はボタンを二個設置し、[見えた]ボタンを押すとtotal = + 0,[見えなかった]ボタンを押すとtotal = + 1し、4点が見えたならtotal = 0で繰り返し終了と言ったシステムです。
何卒よろしくお願いします。
発生している問題・エラーメッセージ
Only instance methods can be declared @IBAction
swift
import UIKit import AVFoundation import Darwin class ViewController: UIViewController , AVAudioPlayerDelegate { var a = 15.0 var A = 0.0 var d = 0.0 var X = 0.0 var Y = 0.0 var Xm = 0.0 var XM = 0.0 var Ym = 0.0 var YM = 0.0 var total = 0.0 let koukaon = Bundle.main.bundleURL.appendingPathComponent("button04b.mp3") var buttonsaisei = AVAudioPlayer() var i = 0 // View var myImageView1: UIImageView! var myImageView2: UIImageView! override func viewDidLoad() { super.viewDidLoad() //視標の設定 myImageView1 = UIImageView(frame: CGRect(x:-50,y:-50,width:5.195*6,height:5.195*6)) myImageView2 = UIImageView(frame: CGRect(x:-50,y:-50,width:5.195*2.2567,height:5.195*2.2567)) // 表示する画像を設定する. let myImage1 = UIImage (named:"zyuuzi") let myImage2 = UIImage (named:"blue") // 画像をUIImageViewに設定する. myImageView1.image = myImage1 myImageView2.image = myImage2 // UIImageViewをViewに追加する self.view.addSubview(myImageView1) self.view.addSubview(myImageView2) let position0 = CGPoint(x:300, y:300) myImageView1.layer.position = position0 d = 12.0 / 11.0 X = 300 * tan(15.0) Y = 300 * tan(3.0) Xm = 300 * tan(15.0 - 5.0 * d) XM = 300 * tan(15.0 + 5.0 * d) Ym = 300 * tan(3.0 - 5.0 * d) YM = 300 * tan(3.0 + 5.0 * d) while total > 0{ let positionA1 = CGPoint(x:300+Xm, y:300+Y) let positionB1 = CGPoint(x:300+X, y:300+YM) let positionC1 = CGPoint(x:300+Xm, y:300+Y) let positionD1 = CGPoint(x:300+X, y:300+Ym) var positions1 = [positionA1,positionB1,positionC1,positionD1] @IBAction func No(_ sender: Any) { //エラーコード該当箇所 } } }
試したこと
前提にも記述した通り、crass[]内、もしくは override func viewDidLoad() { }内でwhileを使用する
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 07:45
2021/01/23 11:30