[swift] 시간이 지날수록 배경색의 점차적인 변화(자체 전용 응용 프로그램 개발의 2)
화면 이미지
출처
견본으로 삼다
여분의 논리가 너무 많기 때문에 중요한 부분만 있다.
ViewController.swift
func timerFiring() {
let timer = Timer(timeInterval: 0.2,
target: self,
selector: #selector(updateColor),
userInfo: nil,
repeats: true)
RunLoop.main.add(timer, forMode: .default)
}
func updateColor() {
//グラデーションの開始色(上下)
//タイマー処理でRGB値を少しずつ変化させてセット
let topColor = UIColor(red: tBgRed, green: tBgGreen, blue: tBgBlue, alpha: 1)
let bottomColor = UIColor(red: bBgRed, green: bBgGreen, blue: bBgBlue, alpha: 1)
//グラデーションの色を配列で管理
let gradientColors: [CGColor] = [topColor.cgColor, bottomColor.cgColor]
//グラデーションレイヤーを作成
gradientLayer?.removeFromSuperlayer()
gradientLayer = CAGradientLayer()
//グラデーションの色をレイヤーに割り当てる
gradientLayer!.colors = gradientColors
//グラデーションレイヤーをスクリーンサイズにする
gradientLayer!.frame = self.view.bounds
//グラデーションレイヤーをビューの一番下に配置
self.view.layer.insertSublayer(gradientLayer!, at: 0)
}
득점
요점으로 삼다
gradientLayer?.removeFromSuperlayer()
그렇지 않으면,timer에서 updateColor () 를 반복해서 호출해도 처음에 설정한 배색 방안에서 업데이트되지 않습니다.참고로 배색에 관해서는 위아래의 RGB 값을 각각 무작위로 0~255 사이를 왕복하는 처리를 직접 썼다.
(현재는 난잡한 논리로 정리한 뒤 다른 기사로 투고하고 싶다)
감상
책상 위의 충전소에 서 있을 때 좌석 근처에 앉은 사람이 "어, 아까랑 색깔이 달라..."라고 말하는 눈빛을 포착하면 된다.
Reference
이 문제에 관하여([swift] 시간이 지날수록 배경색의 점차적인 변화(자체 전용 응용 프로그램 개발의 2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ydzum1123/items/32875e8baeeba632a33d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)