iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
Mobile Development

我將點燃Swiftの大海系列 第 15

Day15. Swift一定要會の調色盤實作篇 (2)

  • 分享至 

  • xImage
  •  

IBAction

我們在 UI 元件設定完成後,接下來要來設定元件的功能設定!
我們在設定元件的動作行為時,需要用到 IBAction 也是跟拉 IBOutlet 時一樣的拉法喔!

View 顏色顯示

    // MARK: - IBAcion
    // View 的 顏色控制
    @IBAction func SliderSum(_ sender: Any) {
        vRGB.backgroundColor = UIColor(
            
            //除以255,因為顏色範圍是0~255
            red: CGFloat((sldRedValue.value)/255),
            green: CGFloat((sldGreenValue.value)/255),
            blue: CGFloat((sldBlueValue.value)/255),
            alpha: 1
        )
    }

slider 數值顯示 textField

    @IBAction func SliderToText(_ sender: UISlider) {
            
        // RGB 顏色數值的顯示,顯示在 TextField
        txfRedText.text = "\(Int(sldRedValue.value))"
        txfGreenText.text = "\(Int(sldGreenValue.value))"
        txfBlueText.text = "\(Int(sldBlueValue.value))"

        // 呼叫 View,將 Slider 的值傳入 View 顯示顏色
        SliderSum(sender)
    }

textField 數值顯示 slider

我們一樣用 IBAction 的方式設定好 func
內容的部分因為其實 RGB 三個顏色寫法都是一樣的所以我這邊就只展示紅色作為範例
剩下就給各位練習啦!


     @IBAction func TextToSlider(_ sender: UITextField) {
                 // Red
        if let redStringValue = txfRedText.text {

            // 限制輸入的值只能用 Int
            if let redIntValue = Int(redStringValue) {

                // 限制數值最高為255,超過255會自動變成255
                // 最低為0,低於0也會因為max而自動變為0
                let redValue = max(0, min(255,redIntValue))
                sldRedValue.setValue(Float(redValue), animated: true)
                txfRedText.text = "\(redValue)"

                // 不是數字的話會自動歸0
            } else {
                sldRedValue.setValue(0, animated: true)
                txfRedText.text = "0"
            }

            // 沒有輸入值的話會自動歸0
        } else {
            sldRedValue.setValue(0, animated: true)
        }
         //Green
         if let greenStringValue = txfGreenText.text {...}
         
         //Blue
         if let blueStringValue = txfBlueText.text {...}
         
         //程式執行完之後,和 SliderToText 一樣要呼叫 SliderSum,改變 View的顯示顏色!
         SliderSum(sender)
     }

總結

這兩天簡單的帶著大家做簡易的調色盤專案,並熟悉實作過程!
明天開始會逐漸增加難度並讓大家更熟練的製作專案喔!


上一篇
Day14. Swift一定要會の調色盤實作篇 (1)
下一篇
Day16. Swift一定要會の留言板實作篇 (1)
系列文
我將點燃Swiftの大海16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言