gpt4 book ai didi

ios - SwiftUI : [Unknown process name] CGAffineTransformInvert: singular matrix ERROR

转载 作者:行者123 更新时间:2023-12-03 18:36:19 24 4
gpt4 key购买 nike

期待 :点击心形图标时会出现绿点加载动画
结果 : 什么都没有发生,感觉就像卡住了,因为心脏动画也不起作用
错误 :[未知进程名称] CGAffineTransformInvert:奇异矩阵。
Screenshot of the app(not working state)
代码 :

struct ContentView: View {
@State private var count=0
@State var isPressed = false
@State var pressed = false
@State var isLoading = false
var body: some View {

VStack {
ZStack{
Circle()
.fill( isPressed ? Color(.systemGray4) : .red )
.overlay(Image(systemName:"heart.fill")
.foregroundColor(isPressed ? .red :.white)
.font(.system(size:100))

.scaleEffect( pressed ? 1.5 : 1.0)
)
.frame(width: 300, height: 300)


}

.onTapGesture{
self.isLoading.toggle()
withAnimation(.spring(response: 1,dampingFraction: 0.4, blendDuration :0.9)){
self.isPressed.toggle()
self.pressed.toggle()
self.isLoading.toggle()
}

}


HStack{
ForEach(0...4, id: \.self){index in
Circle()
.frame(width:10,height:10)
.foregroundColor(.green)
.scaleEffect(self.isLoading ? 1:0)
.animation(Animation.linear(duration:0.6).repeatForever().delay(0.2*Double(index)))
}
}

.padding()


}

}

}


struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

备注 : 当我不切换 isLoading 时加载动画有效 onTapGesture() 内的状态变量 block ,当 View 出现在 onAppear()中时直接设置为true堵塞

最佳答案

原因:
问题基本上是 CGAffinTransform
当你使用修饰符 规模效应 在您看来,编译器在后台对您提供的比例值执行一些变换。
由于您为 .scaleEffect() 提供了值 0(零),因此它将大小设为零并将其视为奇异矩阵(它是一种行列式为零的矩阵)。并且它还被认为是对行列式为零的矩阵执行运算的数学违规。
解决方案:
确保如果您使用的是 .scaleEffect() ,请不要将 View 缩放到精确的 0。您可以使用可能的最小值,即 0.1 或 0.01

关于ios - SwiftUI : [Unknown process name] CGAffineTransformInvert: singular matrix ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63630107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com