記得設定元件的 Connection 再來處裡的 Sent Events
// 當 switch 的狀態改變時,這個方法會被觸發
@IBAction func didChangeSwitchValue(_ sender: UISwitch) {
// 更新顏色顯示視圖
updateColorView()
// 更新控制元件(尤其是 sliders)的狀態
updateControls()
}
// 當任何一個 slider 的值改變時,這個方法會被觸發
@IBAction func SliderChange(_ sender: UISlider) {
var type: ColorType! // 用於儲存顏色類型(紅、綠、藍)
var textField: UITextField! // 用於儲存對應的 textField
// 根據觸發這個方法的 slider,設定顏色類型和對應的 textField
switch sender {
case redSlider:
type = .red
textField = redValue
case greenSlider:
type = .green
textField = greenValue
case blueSlider:
type = .blue
textField = blueValue
default:
break
}
// 獲取對應的顏色和 slider 值
let color = type.color
let value = sender.value
// 更新 slider 和 textField 的狀態
updateSliderAndTextField(slider: sender,
textField: textField,
value: value,
color: color)
// 更新顯示的顏色
updateColorView()
}
// 當 textField 中的文本改變時,這個方法會被觸發
@IBAction func TextChange(_ sender: UITextField) {
// 更新所有顏色的 slider 和 textField
textFieldDidEndEditing(redValue)
textFieldDidEndEditing(greenValue)
textFieldDidEndEditing(blueValue)
// 更新顯示的顏色
updateColorView()
}
前面事先讓大家能稍微明白個大概,接下來我們來仔細講解 IBAction 的用途
@IBAction func buttonClicked() {
// 執行的內容
}
@IBAction func buttonClicked(_ sender: UIButton) {
if sender.isSelected {
// 執行的內容
}
}
@IBAction func buttonClicked(_ sender: any, forEvent event: UIEvent) {
// 執行的內容
}
只會被一種類型的 UI 元件使用,選擇該具體類型會更好。
會被多種不同類型的 UI 元件使用,或者你希望保持更高的靈活性
,則選擇 Any。