What's New / App UI: SwiftUI, AppKit & UIKit

What's new in SwiftUICore

+6 NewiOS · macOS · tvOS · watchOS · visionOS

SwiftUICore holds foundation types of SwiftUI's declarative UI layer, including view-building and gesture primitives like ViewBuilder and TapGesture. App code usually reaches these through the SwiftUI module instead of importing SwiftUICore directly.

The 27 SDK adds 6 APIs, with no deprecations or removals. The one new type is the GestureInputKinds option set, with members including ArrayLiteralElement, Element, and RawValue. The other additions extend existing types, including TapGesture and a ViewBuilder.buildBlock overload.

New

6
struct

GestureInputKinds

NewiOSmacOStvOSvisionOSwatchOS
public struct GestureInputKinds : OptionSet, Sendable

An option set that specifies which input kinds a gesture should recognize.

Declaration
public struct GestureInputKinds : OptionSet, Sendable {

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public let rawValue: Int8

    /// Creates a new option set from the given raw value.
    ///
    /// This initializer always succeeds, even if the value passed as `rawValue`
    /// exceeds the static properties declared as part of the option set. This
    /// example creates an instance of `ShippingOptions` with a raw value beyond
    /// the highest element, with a bit mask that effectively contains all the
    /// declared static members.
    ///
    ///     let extraOptions = ShippingOptions(rawValue: 255)
    ///     print(extraOptions.isStrictSuperset(of: .all))
    ///     // Prints "true"
    ///
    /// - Parameter rawValue: The raw value of the option set to create. Each bit
    ///   of `rawValue` potentially represents an element of the option set,
    ///   though raw values may include bits that are not defined as distinct
    ///   values of the `OptionSet` type.
    public init(rawValue: Int8)

    /// A person is touching content directly.
    ///
    /// Examples:
    ///
    /// - touching a screen directly with fingers,
    /// - directly touching or pinching content in visionOS,
    /// - indirectly pinching content while looking at it in visionOS.
    ///
    /// - Note: In visionOS, you can further customize what hand motions your
    ///   gesture recognizes using ``Gesture/handActivationBehavior(_:)``.
    public static let directTouch: GestureInputKinds

    /// A person is touching content indirectly.
    ///
    /// Examples:
    ///
    /// - performing a multi-touch gesture on a trackpad’s surface,
    /// - swiping on Siri Remote’s surface in tvOS.
    public static let indirectTouch: GestureInputKinds

    /// A person is touching content directly with an Apple Pencil, or an
    /// other supported pencil device.
    public static let pencil: GestureInputKinds

    /// A person is pressing a mouse or a trackpad button while the pointer
    /// is pointing at content.
    public static let pointer: GestureInputKinds

    /// All possible gesture input kinds, present and future.
    public static let all: GestureInputKinds

    /// The type of the elements of an array literal.
    @available(anyAppleOS 27.0, *)
    public typealias ArrayLiteralElement = GestureInputKinds

    /// The element type of the option set.
    ///
    /// To inherit all the default implementations from the `OptionSet` protocol,
    /// the `Element` type must be `Self`, the default.
    @available(anyAppleOS 27.0, *)
    public typealias Element = GestureInputKinds

    /// The raw type that can be used to represent all values of the conforming

Truncated.

extension

TapGesture

NewiOSmacOStvOSvisionOSwatchOS
extension TapGesture
Declaration
extension TapGesture {

    /// Creates a tap gesture with the number of required taps and the
    /// input kinds the gesture recognizes.
    ///
    /// - Parameters:
    ///   - count: The required number of taps to complete the tap
    ///     gesture.
    ///   - inputKinds: A set of input kinds that this gesture recognizes.
    ///     If not specified, the gesture will recognize all applicable input
    ///     kinds that a person can use to perform it.
    nonisolated public init(count: Int = 1, inputKinds: GestureInputKinds = .all)
}
typealias

GestureInputKinds.ArrayLiteralElement

NewiOSmacOStvOSvisionOSwatchOS
public typealias ArrayLiteralElement = GestureInputKinds

The type of the elements of an array literal.

typealias

GestureInputKinds.Element

NewiOSmacOStvOSvisionOSwatchOS
public typealias Element = GestureInputKinds

The element type of the option set.

To inherit all the default implementations from the OptionSet protocol, the Element type must be Self, the default.

typealias

GestureInputKinds.RawValue

NewiOSmacOStvOSvisionOSwatchOS
public typealias RawValue = Int8

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

func

ViewBuilder.buildBlock

NewiOSmacOStvOSwatchOS
public static func buildBlock<each Content>(_ content: repeat each Content) -> TupleContent<repeat each Content>

No APIs match your filter.

← More in App UI: SwiftUI, AppKit & UIKit