일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Storyboard
- CountDownTimer
- date picker
- datepicker
- motivation
- 프로젝트기획
- valueChanged
- backgroundColor
- randombackgroundcolor
- swift animation
- color animate
- 한국어 설정
- IOS
- 오늘의조언
- SWIFT
Archives
- Today
- Total
정우의 개발 일지
[Swift] View 배경색상 랜덤으로 전환하기(feat.animate) 본문
앱을 만들다가 배경화면이 너무 밋밋한 것 같아서 랜덤으로 변경해주는 코드를 만들었습니다.
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값을 변수 하나씩 줘서 저렇게 랜덤 색상을 만들었던게 기억나서 적용해봤습니다.
잘돼서 다행이네요 😌
제 코드보다 효율적인 방법이나 보기 좋은 방법을 알고 계시다면 댓글로 알려주시면 감사하겠습니다!
'Swift' 카테고리의 다른 글
[Swift] UISlider 기능 사용해보기 (Storyboard) (0) | 2021.05.16 |
---|---|
[Swift] Date Picker - 카운트 다운 타이머 모드 (Storyboard에서 모드 변경과 한국어 설정 방법 등) (0) | 2021.05.14 |
Comments