我希望符合 ShapeStyle,目标只是符合 ShapeStyle(仅此而已)。
这是我的代码和问题:
struct MyContentView: View {
var body: some View {
Circle()
.fill(RedView())
}
}
struct RedView: View {
var body: some View {
Color.red
}
}
Run Code Online (Sandbox Code Playgroud)
所以我知道我可以直接使用Color.red而不是视图,但正如我所说,这个问题的目标是符合 ShapeStyle。对于那些要分享有关 ShapeStyle 的苹果开发人员链接的人,我不得不说我以前去过那里。
错误:
实例方法“fill(_:style:)”要求“RedView”符合“ShapeStyle”
免责声明: 以下仅用于演示,因为所有使用的 API 都是私有的(按照惯例,而不是设计),因此如果您将带有此类代码的应用程序提交到 AppStore,Apple 的反应是不可预测的。
注意:由于使用的接口是私有的,因此可以在任何新版本中进行更改。
主要部分:
public func _apply(to shape: inout SwiftUI._ShapeStyle_Shape) {
Color.red._apply(to: &shape) // << here !!
}
Run Code Online (Sandbox Code Playgroud)
在 Xcode 13.3 / iOS 15.4 上给出
完整的发现和代码在这里
ShapeStyle您现在可以通过实现该方法来符合本机要求resolve(in:)。
struct RedShapeStyle: ShapeStyle {
func resolve(in environment: EnvironmentValues) -> some ShapeStyle {
Color.red
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4300 次 |
| 最近记录: |