我试图根据布尔值 Select 剪贴画.
.clipShape(
noText ? Circle() : Capsule()
)
由于此错误,这将不起作用:
Result values in '? :' expression have mismatching types 'Circle' and 'Capsule'
基于布尔值 Select 剪辑形状的最佳方法是什么?谢谢
我试图根据布尔值 Select 剪贴画.
.clipShape(
noText ? Circle() : Capsule()
)
由于此错误,这将不起作用:
Result values in '? :' expression have mismatching types 'Circle' and 'Capsule'
基于布尔值 Select 剪辑形状的最佳方法是什么?谢谢
您的?:表达式需要确保两个条件的类型相同,所以要解决问题,只需将形状包装在AnyShape()中.try 以下示例代码(您可以用自己的图像替换):
import SwiftUI
struct Practice: View {
@State private var test = false
var body: some View {
Image(systemName: "rectangle.fill")
.resizable()
.padding()
.clipShape(test ? AnyShape(Circle()) : AnyShape(Capsule()))
//For iOS 14 this can be done with .mask
//.mask(test ? AnyView(Circle()) : AnyView(Capsule()))
Button("change shape") {
test.toggle()
}
}
}