您显然正在使用“形状”游乐场。
因此,通过单击“...”»“高级”»“查看辅助源文件”»“内容”»“模块”»“Book.playgroundmodule”»“源”»“PlaygroundAPI”查看源。
如果您查看Shadow
结构,这些属性都没有被声明为public
. 这意味着您无法在该模块之外访问它们。
相比之下,如果你对比一下Circle
声明,radius
就是公开的。如果你看AbstractDrawable
,dropShadow
也是public
。
在没有显式访问限定符(例如public
)的情况下,属性获得internal
访问限定符,只能在该模块内访问。(请参阅Swift 编程语言:访问控制。)并且您在该游乐场中的代码与定义的模块不在同一个模块中Shadow
。因此,您无权访问它。
因此,最重要的是,您的警告只是告诉您无法访问Shadow
struct
.
这就引出了一个问题,即为什么他们声明Shadow
您无法自定义阴影的性质。我怀疑这只是他们的疏忽。例如,我在 Xcode 中打开了这个 Playground 工作簿,并将init
方法 for替换为Shadow
以下内容:
public init(offset: Point = Point(x: 1, y: -1), blurRadius: Double = 1, opacity: Double = 0.3, color: Color = .black) {
self.offset = offset
self.blurRadius = blurRadius
self.opacity = opacity
self.color = color
}
然后我可以在我的 iPad 上重新打开这个游乐场并执行以下操作:
let circle = Circle(radius: 30)
circle.dropShadow = Shadow(opacity: 0.9, color: .green)
这产生了: