<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/View/symbolEffect(_:options:value:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI4ViewPAAE12symbolEffect_7options5valueQrqd___7Symbols06SymbolE7OptionsVqd_0_tAG08DiscreteiE0Rd__AG0iE0Rd__SQRd_0_r0_lF"
  },
  "title" : "symbolEffect(_:options:value:)"
}
-->

# symbolEffect(_:options:value:)

Returns a new view with a symbol effect added to it.

```
@export(implementation) nonisolated func symbolEffect<T, U>(_ effect: T, options: SymbolEffectOptions = .default, value: U) -> some View where T : DiscreteSymbolEffect, T : SymbolEffect, U : Equatable
```

## Parameters

`effect`

A symbol effect to add to the view. Existing effects
added by ancestors of the view are preserved, but may be
overridden by the new effect. Added effects will be applied
to the [`Image`](/documentation/SwiftUI/Image) views contained by the child view.

`value`

the value to monitor for changes, the animation is
triggered each time the value changes.

## Return Value

a copy of the view with a symbol effect added.

## Discussion

The following example adds a bounce effect to two symbol
images, the animation will play each time `counter` changes:

```
VStack {
    Image(systemName: "bolt.slash.fill")
    Image(systemName: "folder.fill.badge.person.crop")
}
.symbolEffect(.bounce, value: counter)
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)