IBOutle和IBAction
先对storyboard进行布局
将两个骰子图片和Roll按钮拖入ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var diceImageView1: UIImageView!
@IBOutlet weak var diceImageView2: UIImageView!
@IBAction func roll(_ sender: Any) {
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
创建一个字符串数组,存储所有骰子点数的图片
创建两个变量,存储随机数
let diceArray = ["dice1","dice2","dice3","dice4","dice5","dice6"]
var index1: Int = 0
var index2: Int = 0
创建一个得到随机数,更新UIImage的函数
func updateDiceImages(){
index1 = Int.random(in: 0...5)
index2 = Int.random(in: 0...5)
diceImageView1.image = UIImage(named: diceArray[index1])
diceImageView2.image = UIImage(named: diceArray[index2])
}
每次程序开始都执行这个函数
override func viewDidLoad() {
super.viewDidLoad()
updateDiceImages()
}
用motionEnd来实现手机摇一摇执行函数
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
updateDiceImages()
}
点击Roll按钮执行函数
@IBAction func roll(_ sender: Any) {
updateDiceImages()
}
最后app完成的代码
import UIKit
class ViewController: UIViewController {
let diceArray = ["dice1","dice2","dice3","dice4","dice5","dice6"]
var index1: Int = 0
var index2: Int = 0
@IBOutlet weak var diceImageView1: UIImageView!
@IBOutlet weak var diceImageView2: UIImageView!
@IBAction func roll(_ sender: Any) {
updateDiceImages()
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
updateDiceImages()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
updateDiceImages()
}
func updateDiceImages(){
index1 = Int.random(in: 0...5)
index2 = Int.random(in: 0...5)
diceImageView1.image = UIImage(named: diceArray[index1])
diceImageView2.image = UIImage(named: diceArray[index2])
}
}