Popovers Versions Save

A library to present popovers. Simple, modern, and highly customizable. Not boring!

1.3.2

2 years ago

Finally fixed this really annoying bug. These 5 lines of code messed up dismissal transitions and animations. Since it's an extension, it even affected apps with Popovers installed even when you didn't import Popovers.

extension Transaction: Equatable {
    public static func == (lhs: Transaction, rhs: Transaction) -> Bool {
        lhs.animation == rhs.animation
    }
}

Fixes #25, #27, and #33.

1.3.1

2 years ago

Just a minor update to fix this error:

[Popovers] - No PopoverModel present in responder chain ((self)) - has the source view been installed into a window? Please file a bug report (https://github.com/aheze/Popovers/issues).

I still wasn't able to get rid of this entirely, but for now I just made Popovers create a new PopoverModel.

1.3.0

2 years ago

Menus! It's like the system menu but more customizable, and supports iOS 13 too!

  • Replaced String with AnyHashable for more flexibility in Attributes.Tag.
  • Fixed a retain cycle in Popover.Context.
  • Fixed some system animations not working when .popover was attached to NavigationView.
  • This is a semi-breaking change — but just replace PopoverTemplates with Popovers.Templates.

https://user-images.githubusercontent.com/49819455/152694222-4c74e846-92b9-475d-989f-34f3b17a9705.mp4

1.2.0

2 years ago

Some much-needed additions and fixes. This is a non-breaking change.

  • Presentation changes.
    • Popovers no longer places an intermediary view controller at the top of the screen.
    • Instead, popovers are directly embedded as subviews of the base UIWindow.
    • This minimizes interference with built-in presentation APIs.
  • Software should be accessible. Popovers now comes with built-in VoiceOver support!
    • A dismiss button can be automatically added when VoiceOver is on.
    • The button is fully customizable, along with other traits, via attributes.accessibility.
  • General improvements.
    • Frame recalculations after a screen rotation are now much smoother.
    • Popovers no longer steal focus from active controls like text fields.
    • Sheets and popovers can be presented at the same time.
Popovers 1 2 0

Thanks again to @ShezHsky for the contributions!

1.1.0

2 years ago

Popovers now fully supports multiple windows and won't interfere with the status bar! This is a breaking change — for migrating, check out the guide. Thanks to @ShezHsky for the pull request.

  • No more overlaying container window — popovers are now presented directly on the topmost view controller.
  • No more static Popovers class — control the lifecycle with Popover instance methods.
  • Popover models and frame tags are now tied to specific windows and stored in the UIResponder chain.
  • New WindowReader view for easily reading the hosting window in SwiftUI.
  • If inside a popover view or background, use PopoverReader + context.window instead.
  • Set context.isDraggingEnabled to enable or disable dragging at any time.

https://user-images.githubusercontent.com/49819455/148260067-7d88c863-4a53-4ea8-a001-649e21be38d8.mp4

1.0.4

2 years ago

Popovers now supports multiple screens side-by-side! This is a non-breaking change.

https://user-images.githubusercontent.com/49819455/147528243-06a7ac31-8d1b-46d9-bd40-dc7134df3b25.mp4

1.0.3

2 years ago

Removed unused assets and reorganized the repo.

1.0.1

2 years ago

Forgot to update Cocoapods. This is why you should use Swift Package Manager, everyone!

1.0.0

2 years ago

Merry Christmas! This is the first release of Popovers.

  • Present any view above your app's main content.
  • Attach to source views or use picture-in-picture positioning.
  • Supports multiple popovers at the same time with smooth transitions.
  • Popovers are interactive and can be dragged to different positions.
  • Highly customizable API that's super simple — just add .popover.
  • Written in SwiftUI with full SwiftUI and UIKit support.