LoginSignup
0
0

#8 色調整

Posted at

今回の課題では、スライダーを使用して、私のお気に入りのバイク、Honda monkey125とロゴの背景色と透明度を動的に変更します。以下のような成果です:

1.gif

インターフェースには、画像を表示するための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メソッドによって実現されます。

2.gif

@IBAction func sliderControl(_ sender: UISwitch) {
    redSlider.isEnabled = redSwitch.isOn
    greenSlider.isEnabled = greenSwitch.isOn
    blueSlider.isEnabled = blueSwitch.isOn
    opacitySlider.isEnabled = opacitySwitch.isOn
}

リセット機能
最後に、ユーザーがリセットボタンをクリックすると、全てのスライダーが最小値に設定され、画像の背景も透明になります。

3.gif

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0