SwiftUI 깜박임
Apple씨 공식에 추가해 주어도 에엔야에서. 6월의 WWDC 기대하겠습니다.
사용법
깜박이려는 View에 .blinkEffect()
를 추가합니다.
.blinkEffect()
.blinkEffect(opacity: 0.2...1)
.blinkEffect(interval: 0.5)
Sample.swift
// 点滅する文字 "きらきら"
Text("きらきら")
.blinkEffect()
Copipe 코드
둥글게 뻗어서 프로젝트 안의 어딘가에서 주세요.
BlinkEffect.swiftimport 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))
}
}
사이고에게
깜박이거나 멈추고 싶을 때,
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))
}
}
깜박이거나 멈추고 싶을 때,
.blinkEffect()
같은 방법으로도 좋으면 이 코드에서도 할 수 있습니다.
Reference
이 문제에 관하여(SwiftUI 깜박임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Rubydog/items/82b670866b3e500fff95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)