💭

Shapeを塗りつぶすときはforegroundStyle(_:)よりfill(style:)の方が推奨されている

2024/09/16に公開

foregroundStyle(_:)のApple Developer Documentに以下のTipの記載があった。

foregroundStyle(_:)

nonisolated
func foregroundStyle<S>(_ style: S) -> some View where S : ShapeStyle

https://developer.apple.com/documentation/swiftui/view/foregroundstyle(_:)

❌ おすすめされていない例

import SwiftUI

#Preview("Circle Foreground") {
    Circle()
        .foregroundStyle(.blue)
        .frame(width: 80, height: 80)
}
見た目は同じ

foregroundStyle(_:)
foregroundStyle(_:)

fill(style:)

nonisolated
func fill(style: FillStyle = FillStyle()) -> some View

https://developer.apple.com/documentation/swiftui/shape/fill(style:)

✅ おすすめされている例

import SwiftUI

#Preview("Circle fill") {
    Circle()
        .fill(.blue)
        .frame(width: 80, height: 80)
}
見た目は同じ

fill(style:)
fill(style:)

理由

???
ドキュメントには明記されていない。

Discussion