2017-02-16 39 views
1

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

有人可以帮忙吗?

编辑:这是我试过的代码。我认为这应该是一个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" 
    } 

} 
+0

显示您的试用代码 –

+0

我编辑了我的帖子。我不确定该从哪里出发。 –

+0

什么是你的滑块的最小值和最大值 –

回答

-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 
    } 

} 
+0

@ Anbu.Karthnik因为您忽略了任何非整数值,所以不是最好的解决方案,不是吗?所以如果用户跳过期望值,图像将保持不变。 – alexburtnik

0

由于滑块有一个浮点值,你需要一个整数值来接从阵列图像时,我假设你想使用的最接近的整数指数为滑块的当前值:

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] 
} 
2
  1. 创建文件名的阵列。

  2. 将您的滑块值转换为int。

  3. 使用该int索引到文件名数组中。

  4. 使用image(named:)加载具有该名称的图像。

  5. 将图像安装到图像视图中。

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