<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TipKit",
  "identifier" : "/documentation/TipKit/TipView/init(_:arrowEdge:action:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "TipKit"
    ],
    "preciseIdentifier" : "s:6TipKit0A4ViewV_9arrowEdge6actionACyAA03AnyA0VGAA0A0_pSg_7SwiftUI0E0OSgyAA4TipsO6ActionVctcAGRszrlufc"
  },
  "title" : "init(_:arrowEdge:action:)"
}
-->

# init(_:arrowEdge:action:)

Creates a tip view with an optional arrow.

```
@MainActor @preconcurrency init(_ tip: (any Tip)?, arrowEdge: Edge? = nil, action: @escaping @MainActor @Sendable (Tips.Action) -> Void = { _ in }) where Content == AnyTip
```

## Discussion

- arrowEdge: The edge of the tip view that displays the arrow.
- action: The closure to perform when the user triggers a tip’s action.

> tip: The tip to display.

## Overview

Use a `TipView` when you want to indicate the UI element to which
the tip applies, but don’t want to directly anchor the tip view to that
element. Use the <doc://com.apple.documentation/documentation/SwiftUI/View/popoverTip(_:arrowEdge:action:)> to anchor your tip to an element.

---

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)