我有這個代碼,它的工作,但不是真的想。我是Xcode/Swift /開發應用程序的新手。我將它看教程和使用一些片斷作爲例子,但至今工作:)如何隨機將圖像鏈接到聲音?
我想使它在這樣的工作:
當我點擊playSound和聽到它,然後我必須在leftImage和rightImage之間進行選擇。與playSound匹配的圖像。我已經嘗試了很多方法來使它工作..但沒有...我不能讓聲音索引字符串比較爲「如果a == b ..」
當我打開該應用程序時,它顯示我只有兩個底部按鈕..但沒有任何圖像。我怎樣才能讓它顯示第一個圖像?
我也喜歡使它有點隨意想...當我點擊「nextImage」按鈕,我想顯示不同的圖像,但只有一個鏈接到聲音..所以當我玩聲音..只檢查與聲音相匹配的照片。
此時,我只有8張照片/聲音進入陣列,但是當我在nextImage上點擊9次以上時,圖像仍在繼續播放..但聲音從開始就開始,而不是更多鏈接。例如,在第10個圖像..它playSound說它在1.我怎樣才能使它遵循圖像索引?
如何將圖像索引轉換爲文本?例如,如果它顯示我的圖像「foto1」;我想在圖片下向我展示標籤中的文字。
import UIKit
import AVFoundation
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
var soundFiles: [String] = [
"s0",
"s1",
"s2",
"s3",
"s4",
"s5",
"s6",
"s7",
"s8",
"s9"
]
var images1: [UIImage] = [
UIImage(named: "foto1.png")!,
UIImage(named: "foto2.png")!,
UIImage(named: "foto3.png")!,
UIImage(named: "foto4.png")!,
UIImage(named: "foto5.png")!,
UIImage(named: "foto6.png")!,
UIImage(named: "foto7.png")!,
UIImage(named: "foto8.png")!
]
var images2: [UIImage] = [
UIImage(named: "foto1.png")!,
UIImage(named: "foto2.png")!,
UIImage(named: "foto3.png")!,
UIImage(named: "foto4.png")!,
UIImage(named: "foto5.png")!,
UIImage(named: "foto6.png")!,
UIImage(named: "foto7.png")!,
UIImage(named: "foto8.png")!
]
var happySad: [UIImage] = [
UIImage(named: "sad.png")!,
UIImage(named: "happy.png")!
]
var currentImageIndex = 0
var currentImage2Index = 0
@IBOutlet weak var leftImage: UIImageView!
@IBOutlet weak var rightImage: UIImageView!
@IBOutlet weak var sh: UIImageView!
@IBAction func nextImages(_ sender: Any) {
currentImageIndex += 1
let numberOfImages = images1.count
let nextImage1Index = currentImageIndex % numberOfImages
leftImage.image = images1[nextImage1Index]
leftImage.isUserInteractionEnabled = true
self.view.addSubview(leftImage)
let gesture1 = UITapGestureRecognizer(target: self, action: #selector(ViewController.singleTap1))
leftImage.addGestureRecognizer(gesture1)
currentImage2Index += 1
let numberOfImages2 = images2.count
let nextImage2Index = currentImage2Index % numberOfImages2
rightImage.image = images2[nextImage2Index]
sh.image = UIImage(named: "question")
rightImage.isUserInteractionEnabled = true
self.view.addSubview(rightImage)
let gesture2 = UITapGestureRecognizer(target: self, action: #selector(ViewController.singleTap2))
rightImage.addGestureRecognizer(gesture2)
}
func singleTap1() {
if currentImageIndex == currentImage2Index {
sh.image = UIImage(named: "happy.png")
print("ok")
} else {
sh.image = UIImage(named: "sad.png")
print("not ok")
}
}
func singleTap2() {
if currentImageIndex == currentImage2Index {
sh.image = UIImage(named: "happy.png")
print("ok2")
} else {
sh.image = UIImage(named: "sad.png")
print("not ok2")
}
}
var player: AVAudioPlayer!
@IBAction func playSound(_ sender: Any) {
let numberOfImages = images1.count
let nextImage5Index = currentImageIndex % numberOfImages
let soundFilePath = Bundle.main.url(forResource: soundFiles[nextImage5Index], withExtension: ".m4a")!
player = try! AVAudioPlayer(contentsOf: soundFilePath)
player.prepareToPlay()
player.play()
}
}
對於我來說,現在對於我來說有點難以完成,但是我會搜索以學習如何實現您所說的並使其工作:D 感謝您的幫助,我感謝它!我會盡量按照你所說的 –
來對你打擾:)。你能給我一個功能性的例子,說明如何調用下一個按鈕的水平?以及如何使用播放聲音按鈕播放聲音? ....我真的無法想象如何去做。謝謝 –