1 days ago
LNPopupController

v4.1.1

  • Added LNPopupBar.inlineAppearance and LNPopupItem.inlineAppearance
    • If provided, the popup will switch appearances as it transitions from inline to regular
    • By default, these properties are nil and the standard appearance is used
  • iOS 26.1 improvements (ongoing)
  • setItems(_:animated:) will now better animate popup bar item change
  • Numerous layout fixes and improvements
3 days ago
ZLPhotoBrowser

4.7.2

Add

  • Improved video editing experience:
    • Added a shadow area mask for a clearer view of the currently selected video clip.
    • Added a feature to display the duration of the currently selected clip.
  • The ZLImagePreviewController interface supports disabling the pull-down return gesture.
  • Change the permission of ZLPhotoPreviewSheet to private.

Fix

  • Fixed a bug where the UI of the thumbnail interface might display an error when the permission is "limited".
3 days ago
ZLPhotoBrowser

4.7.2

Add

  • Improved video editing experience:
    • Added a shadow area mask for a clearer view of the currently selected video clip.
    • Added a feature to display the duration of the currently selected clip.
  • The ZLImagePreviewController interface supports disabling the pull-down return gesture.
  • Change the permission of ZLPhotoPreviewSheet to private.

Fix

  • Fixed a bug where the UI of the thumbnail interface might display an error when the permission is "limited".
4 days ago
ZLPhotoBrowser

4.7.1

Add:

  • Improved video editing experience:
    • Added a shadow area mask for a clearer view of the currently selected video clip.
    • Added a feature to display the duration of the currently selected clip.
  • The ZLImagePreviewController interface supports disabling the pull-down return gesture.

Fix:

  • Fixed a bug where the UI of the thumbnail interface might display an error when the permission is "limited".
4 days ago
LNPopupController

v4.1.0

Introducing popup bar minimization support!

To enable, set the minimization mode of the tab bar controller:

self.tabBarController?.tabBarMinimizeBehavior = .onScrollDown

To listen to bar environment changes in your popup content controller and update the popup item accordingly, register for the LNPopupBar.EnvironmentTrait trait changes:

registerForTraitChanges([LNPopupBar.EnvironmentTrait.self]) { (self: Self, previousTraitCollection) in
    popupItem.barButtonItems = self.traitCollection.popUpBarEnvironment == .inline ? /* inline bar */ : /* regular bar */
}

You can also handle changes in traitCollectionDidChange(_:).

Popup bar minimization is enabled by default, and is supported for system and custom popup bars, with the exception of custom bars with LNPopupBar.customBarWantsFullBarWidth = true. To disable popup bar minimization, set LNPopupBar.supportsMinimization to false.

11 days ago
LNPopupController

v4.0.10

  • Improved support for popup content scroll views on iOS 26
11 days ago
LNPopupController

v4.0.9

  • Improved transition infrastructure for SwiftUI on iOS 26
  • UIKit will no longer print “Unexpected nil window in latent system gesture client update” warnings
11 days ago
LNPopupController

v4.0.8

Fixed a popup bar present transition issue.

12 days ago
LNPopupController

v4.0.7

  • Improved default custom bar corner configuration on iOS 26
  • Improved bar frame calculation on iOS 26
    • Fixed an issue where popup bar appeared incorrectly on square screen devices
  • UIViewController.insetsForBottomDockingView is deprecated on iOS 26 and above, and is no longer used
  • Bumped required Xcode to version 16
    • The project will soon require Xcode 26 to compile; if you are holding out because of glass design, you can use UIDesignRequiresCompatibility to still get the legacy iOS look and feel (this framework supports this fully)
13 days ago
LNPopupController

v4.0.6

Introduce UIViewController.requiresIndirectSafeAreaManagement property to allow complex container controllers to control whether safe area insets are directly or indirectly managed by the framework.