SwiftUI 깜박임

어, 스스로 만들 수밖에 없어?!
Apple씨 공식에 추가해 주어도 에엔야에서. 6월의 WWDC 기대하겠습니다.



사용법



깜박이려는 View에 .blinkEffect()를 추가합니다.
  • 기본값: .blinkEffect()
  • 투명도 범위 지정: .blinkEffect(opacity: 0.2...1)
  • 깜박임 간격(초) 지정: .blinkEffect(interval: 0.5)

  • Sample.swift
    // 点滅する文字 "きらきら"
    Text("きらきら")
        .blinkEffect()
    

    Copipe 코드



    둥글게 뻗어서 프로젝트 안의 어딘가에서 주세요.

    BlinkEffect.swift
    import SwiftUI
    struct BlinkEffect: ViewModifier {
        @State var isOn: Bool = false
        let opacityRange: ClosedRange<Double>
        let interval: Double
    
        init(opacity: ClosedRange<Double>, interval: Double) {
            self.opacityRange = opacity
            self.interval = interval
        }
    
        func body(content: Content) -> some View {
            content
                .opacity(self.isOn ? self.opacityRange.lowerBound : self.opacityRange.upperBound)
                .animation(Animation.linear(duration: self.interval).repeatForever())
                .onAppear(perform: {
                    self.isOn = true
                })
        }
    }
    
    extension View {
        func blinkEffect(opacity: ClosedRange<Double> = 0.1...1, interval: Double = 0.6) -> some View {
            self.modifier(BlinkEffect(opacity: opacity, interval: interval))
        }
    }
    

    사이고에게



    깜박이거나 멈추고 싶을 때,
  • 같은 View를 2개 준비
  • .blinkEffect()
  • if 문에서 조건에 따라 View를 분리

  • 같은 방법으로도 좋으면 이 코드에서도 할 수 있습니다.

    좋은 웹페이지 즐겨찾기