前提・実現したいこと
スライドショーアプリを作っています。startStopというボタンを押したらスライドショーが始まり、スライドショーが流れている間は他のボタン(backImage,nextImage)はfalseを使い非表示にしようと思っています。以前試した際は問題なく作動したのですが、改めてシュミレーターで確認を行うと非表示になっていませんでした。どこかに間違いがあるのでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
swift
1ソースコード 2```@IBAction func startStop(_ sender: Any) { 3 4 tapCount += 1 5 6 if tapCount % 2 == 0{ 7 self.timer=Timer.scheduledTimer(timeInterval: 2,target: self,selector: #selector(onTimer(_:)),userInfo: nil, repeats: true) 8 9 backImage.isEnabled = false 10 nextImage.isEnabled = false 11 12 13 }else{ 14 self.timer.invalidate() 15 16 backImage.isEnabled = true 17 nextImage.isEnabled = true 18 19 } 20 21### 試したこと 22 23再起動してみたり、改めて書き直したりしましたがfalseが作動されません。 24 25### 補足情報(FW/ツールのバージョンなど) 26 27ここにより詳細な情報を記載してください。
念のため、ソースコードすべてを貼ってもらうことは可能でしょうか。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var UIImageView: UIImageView!
@IBOutlet weak var backImage: UIButton!
@IBOutlet weak var nextImage: UIButton!
var imageIndex = 0
var tapCount = 1
var timer: Timer!
let images = [UIImage(named: "umi1.jpeg"),UIImage(named: "umi2.jpeg"),UIImage(named: "umi3.jpeg")]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let imageView = images[0]
UIImageView.image = imageView
}
override func didReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
}
@IBAction func backImage(_ sender: Any) {
if imageIndex == 0{
imageIndex = 2
}else{
imageIndex -= 1
}
UIImageView.image = images[imageIndex]
}
@IBAction func nextImage(_ sender: Any) {
if imageIndex == 2{
imageIndex = 0
}else{
imageIndex += 1
}
UIImageView.image = images[imageIndex]
}
@objc func onTimer(_ timer: Timer){
if imageIndex == 2{
imageIndex = 0
}else{
imageIndex += 1
}
UIImageView.image = images[imageIndex]
}
@IBAction func startStop(_ sender: Any) {
tapCount += 1
if tapCount % 2 == 0{
self.timer=Timer.scheduledTimer(timeInterval: 2,target: self,selector: #selector(onTimer(_:)),userInfo: nil, repeats: true)
backImage.isEnabled = false
nextImage.isEnabled = false
}else{
self.timer.invalidate()
backImage.isEnabled = true
nextImage.isEnabled = true
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
let resultViewController:ResultViewController = segue.destination as! ResultViewController
resultViewController.image = images[imageIndex]
}
@IBAction func unwind(_ segue: UIStoryboardSegue){
}
}
こうなっています!
このスペースに投稿したのですがよろしいでしょうか?
回答1件
あなたの回答
tips
プレビュー