今回の課題では、スライダーを使用して、私のお気に入りのバイク、Honda monkey125とロゴの背景色と透明度を動的に変更します。以下のような成果です:
インターフェースには、画像を表示するための2つのUIImageViewと、赤、綠、青の色値と透明度を調整するための4つのUISliderが含まれています。また、対応するスライダーを有効または無効にするための4つのUISwitchもあります。全ての設定を初期状態に戻すためのリセットボタンもあります。
背景色の調整
ユーザーがいずれかのスライダーを動かすたびに、changeBackgroundメソッドがトリガーされ、スライダーの値に基づいてUIImageViewの背景色が動的に変更されます。
@IBAction func changeBackground(_ sender: UISlider) {
monkeyImage.backgroundColor = UIColor(red: CGFloat(redSlider.value), green: CGFloat(greenSlider.value), blue: CGFloat(blueSlider.value), alpha: CGFloat(opacitySlider.value))
logoImage.backgroundColor = UIColor(red: CGFloat(redSlider.value), green: CGFloat(greenSlider.value), blue: CGFloat(blueSlider.value), alpha: CGFloat(opacitySlider.value))
}
スライダーの有効/無効化
ユーザーがUISwitchを切り替えると、対応するスライダーが有効または無効になります。これはsliderControlメソッドによって実現されます。
@IBAction func sliderControl(_ sender: UISwitch) {
redSlider.isEnabled = redSwitch.isOn
greenSlider.isEnabled = greenSwitch.isOn
blueSlider.isEnabled = blueSwitch.isOn
opacitySlider.isEnabled = opacitySwitch.isOn
}
リセット機能
最後に、ユーザーがリセットボタンをクリックすると、全てのスライダーが最小値に設定され、画像の背景も透明になります。
@IBAction func reset(_ sender: UIButton) {
redSlider.value = redSlider.minimumValue
greenSlider.value = greenSlider.minimumValue
blueSlider.value = blueSlider.minimumValue
opacitySlider.value = opacitySlider.minimumValue
monkeyImage.backgroundColor = UIColor(red: CGFloat(0), green: CGFloat(0), blue: CGFloat(0), alpha: CGFloat(0))
logoImage.backgroundColor = UIColor(red: CGFloat(0), green: CGFloat(0), blue: CGFloat(0), alpha: CGFloat(0))
}