如何在Swift中使用UISlider更改UIImageView中的图像

问题描述 投票:1回答:3

我正在尝试使用UISlider来更改UIImageView中的图像所以我的想法是,如果滑块值为1,则某个图像显示它是否为2,不同的图像显示。等等

有人可以帮忙吗?

编辑:这是我试过的代码。我认为它应该是一个If / Else语句,但我不确定如何形成语法。

@IBOutlet weak var scaleLabel: UILabel!
@IBOutlet weak var scaleSlider: UISlider!
@IBOutlet weak var scaleImage: UIImageView!



@IBAction func valueChanged1(sender: AnyObject) {

    if scaleSlider.value == 1 {
        scaleImage.image = "Image.png"
    }

}
ios swift swift3 uislider
3个回答
-2
投票

喜欢

@IBAction func valueChanged1(_ sender: UISlider) {

 var imageName : String = "Image.png"

 switch (sender.value)
{
  case 0:
    print("zero")
  imageName = "yyyy.png"

  case 1:
    print("one")
  imageName = "zzzz.png"
  case 2:
    print("two")
   imageName = "aaaa.png"

  default:
    print("Integer out of range")
 }

  if let image = UIImage(named:imageName) {
    scaleImage.image = image
   }

}

2
投票
  1. 创建一个文件名数组。
  2. 将滑块值转换为int。
  3. 使用该int索引文件名数组。
  4. 使用image(named:)加载具有该名称的图像。
  5. 将图像安装到图像视图中。

看看您是否可以将这些步骤转换为代码。如果不编辑您的问题以显示您的代码并告诉我们发生了什么,我们将向您展示如何调试它。


0
投票

由于滑块具有Float值,并且您需要一个整数值来从数组中选择图像,我假设您要使用最接近的整数索引作为滑块的当前值:

let images = [
    UIImage(named: "image1"),
    UIImage(named: "image2"),
    UIImage(named: "image3")
]

var currentIndex = 0 {
    didSet {
        if oldValue != currentIndex {
            currentIndexUpdated()
        }
    }
}

@IBAction func valueChanged(_ sender: UISlider) {
    currentIndex = Int(round(sender.value))
}

func currentIndexUpdated() {
    guard 0..<images.count ~= currentIndex else { return }
    imageView.image = images[currentIndex]
}
© www.soinside.com 2019 - 2024. All rights reserved.