<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Symbols",
  "identifier" : "/documentation/Symbols/BounceSymbolEffect",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Symbols"
    ],
    "preciseIdentifier" : "s:7Symbols18BounceSymbolEffectV"
  },
  "title" : "BounceSymbolEffect"
}
-->

# BounceSymbolEffect

A type that applies a transitory scaling effect, or bounce, to the layers in a symbol-based image separately or as a whole.

```
struct BounceSymbolEffect
```

## Overview

A bounce animation draws attention to a symbol by applying a brief scaling operation to the symbol’s layers. You can choose to scale the symbol up or down as it bounces.

> Important:
> Because SwiftUI is a state-driven framework, you pass a `value` parameter when adding discrete effects, like bounce. You trigger the animation by changing the `value` parameter. Because AppKit and UIKit are event-driven frameworks, discrete effects animate automatically when added to an image view.

```swift
// Add an effect in SwiftUI.
@State private var value1 = 0
@State private var value2 = 0
var body: some View {
    HStack {
        Image(systemName: "arrow.up.circle")
            // Bounce with a scale-up animation.
            .symbolEffect(.bounce.up, value: value1)
            .onTapGesture {
                value1 += 1
            }
        Image(systemName: "arrow.down.circle")
            // Bounce three times with a scale-down animation.
            .symbolEffect(.bounce.down, options: .repeat(3), value: value2)
            .onTapGesture {
                value2 += 1
            }
    }
}
```

```swift
// Add an effect in AppKit and UIKit.
// Bounce with a scale-up animation.
imageView1.addSymbolEffect(.bounce.up)
    
// Bounce three times with a scale-down animation.
imageView2.addSymbolEffect(.bounce.down, options: .repeat(3))
```

## Topics

### Accessing symbol effects

[`var down: BounceSymbolEffect`](/documentation/Symbols/BounceSymbolEffect/down)

An effect that bounces the symbol downward.

[`var up: BounceSymbolEffect`](/documentation/Symbols/BounceSymbolEffect/up)

An effect that bounces the symbol upward.

### Determining effect scope

[`var byLayer: BounceSymbolEffect`](/documentation/Symbols/BounceSymbolEffect/byLayer)

An effect that bounces each layer separately.

[`var wholeSymbol: BounceSymbolEffect`](/documentation/Symbols/BounceSymbolEffect/wholeSymbol)

An effect that bounces all layers simultaneously.

### Accessing the configuration

[`var configuration: SymbolEffectConfiguration`](/documentation/Symbols/BounceSymbolEffect/configuration)

The configuration for the effect.

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Escapable`](/documentation/Swift/Escapable)

[`Copyable`](/documentation/Swift/Copyable)

[`Sendable`](/documentation/Swift/Sendable)

[`DiscreteSymbolEffect`](/documentation/Symbols/DiscreteSymbolEffect)

[`Hashable`](/documentation/Swift/Hashable)

[`IndefiniteSymbolEffect`](/documentation/Symbols/IndefiniteSymbolEffect)

[`SymbolEffect`](/documentation/Symbols/SymbolEffect)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)