使用变量来引用图像IBOutlet并更改图像

时间:2015-03-22 15:54:16

标签: ios image swift variables iboutlet

感谢您花时间阅读本文。

class InterfaceController: WKInterfaceController {

var sliderValue:Int = 0
var imageName: String = ""

@IBOutlet weak var im1: WKInterfaceImage!
@IBOutlet weak var im2: WKInterfaceImage!


@IBAction func sliderAction(value: Float) {

    sliderValue = Int(value)
    imageName = "im\(sliderValue)"   
}


@IBAction func button() {
imageName.setImageNamed(sliderValue)
}

问题:我想使用变量imageName并将其用作IBOutlet的名称(因此imageName是im1或im2)。所以基本上这就是我想要的(但显然不起作用):

imageName.setImageNamed(sliderValue)

如何做到这一点?

致以最诚挚的问候,非常感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

在初始化之后但在访问之前将图像放入数组中。

class InterfaceController: WKInterfaceController {
  // ...
  var images : [WKInterfaceImage] = []

  func viewDidLoad () {
    super.viewDidLoad
    images = [im1, im2]
  }    
}

现在您可以根据滑块值访问它们,用作images数组的索引。

或者更好的是,如果您可以将images首次访问权限限制在im1im2之后:

class InterfaceController: WKInterfaceController {
  // ...
  lazy var images : [WKInterfaceImage] = [im1, im2]
  // ...
}

使用上述任何一种方法,您可以根据特定编码样式/需要定义按钮,滑块操作或计算属性。