如何通过修饰按钮重复功能

时间:2015-12-12 02:36:24

标签: ios swift function

我正在使用Swift 2.1处理Xcode7 我的代码有问题。我正在制作一个随机功能,当我触摸按钮时,它会自动显示一个随机电影。

但问题是我希望它在我修饰按钮时重复这个功能,因为当我修饰按钮时,什么也没发生。

以下是代码:

   class ViewController: UIViewController {
   var random = arc4random_uniform(3)

@IBOutlet weak var NomDuFilm: UILabel!   
@IBOutlet weak var ImageFilm: UIImageView!  

@IBAction func ShowRandom(sender: AnyObject) {

    switch random {
      case 0:

        self.ImageFilm.image = UIImage(named: "Inception.jpg")
        NomDuFilm.text = "Inception"          
        NomDuFilm.hidden = false

      case 1:       
        self.ImageFilm.image = UIImage(named: "Memento.jpg")
        NomDuFilm.text = "Memento"    
        NomDuFilm.hidden = false

      case 2:
        self.ImageFilm.image = UIImage(named: "ShutterIsland.jpg")
        NomDuFilm.text = "Shutter Island"
        NomDuFilm.hidden = false

      case 3:
        self.ImageFilm.image = UIImage(named: "Prisoners.jpg")
        NomDuFilm.text = "Prisoners"
        NomDuFilm.hidden = false

      case 4:
        self.ImageFilm.image = UIImage(named: "LePrestige.jpg")
        NomDuFilm.text = "Le Prestige"
        NomDuFilm.hidden = false

      default:
        self.ImageFilm.image = UIImage(named: "PulpFiction.png")
        NomDuFilm.text = "Pulp Fiction"
        NomDuFilm.hidden = false

       }

感谢您的帮助,对不起我的近似英语......

2 个答案:

答案 0 :(得分:1)

实例化实例时,您只需初始化random属性一次。这意味着每次调用ShowRandom时,它都会显示相同的图像。

您可以将random的定义移到ShowRandom函数中,每次都会得到一个新值。

如果您使用数组作为图像和标题,则可以避免使用大型switch语句。

此外,按照惯例,您的函数名称应以小写字母开头(showRandom而不是ShowRandom)

class ViewController: UIViewController {

@IBOutlet weak var NomDuFilm: UILabel!   
@IBOutlet weak var ImageFilm: UIImageView!  

@IBAction func ShowRandom(sender: AnyObject) {

    let random = arc4random_uniform(4)

    switch random {
      case 0:

        self.ImageFilm.image = UIImage(named: "Inception.jpg")
        NomDuFilm.text = "Inception"          

      case 1:       
        self.ImageFilm.image = UIImage(named: "Memento.jpg")
        NomDuFilm.text = "Memento"    

      case 2:
        self.ImageFilm.image = UIImage(named: "ShutterIsland.jpg")
        NomDuFilm.text = "Shutter Island"

      case 3:
        self.ImageFilm.image = UIImage(named: "Prisoners.jpg")
        NomDuFilm.text = "Prisoners"

      case 4:
        self.ImageFilm.image = UIImage(named: "LePrestige.jpg")
        NomDuFilm.text = "Le Prestige"

      default:
        self.ImageFilm.image = UIImage(named: "PulpFiction.png")
        NomDuFilm.text = "Pulp Fiction"

       }

       NomDuFilm.hidden = false

答案 1 :(得分:0)

您是否在操作调用中添加了随机调用?

@IBAction func ShowRandom(sender: AnyObject) {
   random = arc4random_uniform(3)

 //switch goes here.
}