정우의 개발 일지

[Swift] View 배경색상 랜덤으로 전환하기(feat.animate) 본문

Swift

[Swift] View 배경색상 랜덤으로 전환하기(feat.animate)

이정우 2021. 5. 10. 20:53

앱을 만들다가 배경화면이 너무 밋밋한 것 같아서 랜덤으로 변경해주는 코드를 만들었습니다.

func changeBackgroundColorRandom(){
	let r : CGFloat = CGFloat.random(in: 0...1)
	let g : CGFloat = CGFloat.random(in: 0...1)
	let b : CGFloat = CGFloat.random(in: 0...1)

	self.view.backgroundColor = UIColor(red: r, green: g, blue: b, alpha: 1)
}

처음에 이런식으로 작성을 했었는데 이러면 rgb값이 아주 낮은 값까지 나오다보니
텍스트가 잘 보이지 않는 현상이 생기더라구요

희망하는 랜덤 색상
문제되는 랜덤 색상

func changeBackgroundColorRandom(){
	let r : CGFloat = CGFloat.random(in: 0.7...1)
	let g : CGFloat = CGFloat.random(in: 0.7...1)
	let b : CGFloat = CGFloat.random(in: 0.7...1)

	self.view.backgroundColor = UIColor(red: r, green: g, blue: b, alpha: 1)
}

그래서 이렇게 값을 0.7~1 사이만 나오게 수정하여 배경에 밝은 계열의 색상만 적용되게 하였습니다.

 

func changeBackgroundColorRandom(){
    let r : CGFloat = CGFloat.random(in: 0.7...1)
    let g : CGFloat = CGFloat.random(in: 0.7...1)
    let b : CGFloat = CGFloat.random(in: 0.7...1)

    UIView.animate(withDuration: 0.8, animations: {
       self.view.backgroundColor = UIColor(red: r, green: g, blue: b, alpha: 1)
    })
}

그리고 바로 바뀌는게 너무 딱딱한 것 같아서 색이 변하는 걸 보여주는 애니메이션을 줬습니다.

서서히 변하는 배경색

작년에 자바 공부를 할 때 rgb값을 변수 하나씩 줘서 저렇게 랜덤 색상을 만들었던게 기억나서 적용해봤습니다.
잘돼서 다행이네요 😌
제 코드보다 효율적인 방법이나 보기 좋은 방법을 알고 계시다면 댓글로 알려주시면 감사하겠습니다!

Comments