Skip to content

Releases: Aeastr/NotchMyProblem

CutoutAccessoryView

31 Jul 02:36
ee8193d

Choose a tag to compare

  • New:
    • Introduced CutoutAccessoryView, replacing TopologyButtons.
      • Clearer API and documentation for any leading/trailing content.
      • Automatically adapts to notched, Dynamic Island, and standard devices.
    • The .auto padding mode now uses mathematical curves to calculate optimal spacing around the display cutout.
    • Improved "fake cutout" logic for non-notched devices, providing more natural spacing.
    • New Swift package icon (iOS 26 style) and updated images.
  • Breaking:
    • TopologyButtons has been removed.
      • Migrate to CutoutAccessoryView.
    • Padding API has changed to support the new, more flexible system.
  • Improved:
    • Layout and spacing are more consistent and customizable across all iPhones.
    • Documentation and code comments have been expanded and clarified.

1.0.1

03 Mar 17:36
9b35e5c

Choose a tag to compare

What's Changed

  • Added Example Project

Full Changelog: 1.0.0...1.0.1

1.0.0

03 Mar 15:01
e86a4eb

Choose a tag to compare

Version 1.0.0 - Initial Release

Changelog:

  • Introduction of NotchMyProblem Swift Package:

    • Provides an automated, robust solution for positioning UI elements—such as buttons—around the iPhone's notch and Dynamic Island.
  • Core Features:

    • Dynamic Positioning:
      Automatically detects the device's top cutout area (notch/Dynamic Island) and positions UI elements accordingly.
    • Override System:
      Supports global, instance-specific, and view-specific overrides to fine-tune element spacing on a per-device or app-wide basis.
    • Device-Specific Tuning:
      Utilizes a flexible configuration model (using the DeviceOverride struct) to correct for API inaccuracies and adjust layouts for diverse device families.
  • Safety and Robustness Improvements:

    • Implements safe access to private APIs (using Objective-C runtime features) with proper checks to prevent crashes on devices without a notch or Dynamic Island.
    • Incorporates fallback mechanisms and validation of exclusion areas.
  • Logging Support:

    • Integrated logging using Logger on iOS 14+ and os_log on iOS 13 for detailed debugging and diagnostics.
  • SwiftUI Integration:

    • Provides the TopologyButtonsView for simple integration into SwiftUI projects.
    • Includes environment support for applying custom notch overrides using view modifiers (e.g., .notchOverride()).
  • Documentation and Examples:

    • Comprehensive README and inline code documentation.
    • Example usage and preview configurations demonstrate how to integrate and customize the package.
  • Compatibility:

    • Supports iOS 13.0 and later, with specific behaviors for devices with and without top cutouts.