SwiftUI:使用具有可变模糊效果的 RotationGesture
Posted
技术标签:
【中文标题】SwiftUI:使用具有可变模糊效果的 RotationGesture【英文标题】:SwiftUI: using RotationGesture with changeable blur effect 【发布时间】:2020-06-08 05:51:53 【问题描述】:我正在尝试将 RotationGesture 与可变模糊效果相结合。因此,如果您将目镜向右转动,您会得到像在双筒望远镜中一样清晰的图像。左转,又会模糊。下面的代码基本上是在做,但不是很顺利。你有什么改善效果的想法吗?
struct ContentView: View
@State var blurring: CGFloat = 20
@State var sharping: CGFloat = 0
@State private var rotateState: Double = 0
var body: some View
ZStack
Image("cat")
.resizable()
.frame(width: 200, height: 200)
.blur(radius: blurring)
.clipShape(Circle())
Image("ocular_rk2")
.resizable()
.frame(width: 350, height: 350)
.rotationEffect(Angle(degrees: self.rotateState))
.gesture(RotationGesture()
.onChanged value in
self.rotateState = value.degrees
self.changeBlur()
.onEnded value in
self.rotateState = value.degrees
print(self.rotateState)
)
func changeBlur()
switch rotateState
case -10000...10000: sharping = 0.1
default:
print("# Mistake in Switch")
if rotateState < 0
blurring += sharping
else
blurring -= sharping
【问题讨论】:
【参考方案1】:检查一下(我测试过,它有效)
也许您应该考虑更改一些值,因为您必须旋转一段时间才能看到文本。
顺便说一句:发布可编译的可重现代码总是一种好方法(我们没有您的图片)...
struct ContentView: View
@State var blurring: CGFloat = 20
@State var sharping: CGFloat = 0
@State private var rotateState: Double = 0
var body: some View
ZStack
Text("cat")
// .resizable()
.frame(width: 200, height: 200)
.clipShape(Circle())
.background(Color.yellow)
Text("ocular_rk2")
// .resizable()
.blur(radius: blurring)
.frame(width: 350, height: 350)
.background(Color.red)
.rotationEffect(Angle(degrees: self.rotateState))
.gesture(RotationGesture()
.onChanged value in
self.rotateState = value.degrees
self.changeBlur()
.onEnded value in
self.rotateState = value.degrees
print(self.rotateState)
)
func changeBlur()
switch rotateState
case -10000...10000: sharping = 0.1
default:
print("# Mistake in Switch")
if rotateState < 0
blurring = blurring + sharping
else
blurring = blurring - sharping
print(blurring)
【讨论】:
克里斯,据我所知,您只是复制了我的代码,将图像更改为文本。这可能对其他人更有礼貌,但这不是我问题的答案。 Roman,只要测试一下,你就会发现,它有效——而你的却没有。如果你看不出区别——而且有一个重要的区别——我无法帮助你以上是关于SwiftUI:使用具有可变模糊效果的 RotationGesture的主要内容,如果未能解决你的问题,请参考以下文章