2017-02-16 42 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. 將圖像安裝到圖像視圖中。

看看你是否可以將這些步驟轉換爲代碼。如果不編輯您的問題以顯示您的代碼並告訴我們會發生什麼,我們將向您展示如何調試它。