v4.2.5
- Layout improvements for
UINavitationController
containers on iOS 26 -
LNPopupContentView
will no longer attempt to observe the popup content view controller’soverrideUserInterfaceStyle
property- Instead, set
LNPopupContentView
'straitOverrides.userUnterfaceStyle
oroverrideUserInterfaceStyle
directly
- Instead, set
- Fixed incorrect red tinting of galss buttons committed by mistake
v4.2.4
- Layout improvements for
UINavitationController
containers on iOS 26 -
LNPopupContentView
will no longer attempt to observe the popup content view controller’soverrideUserInterfaceStyle
property- Instead, set
LNPopupContentView
'straitOverrides.userUnterfaceStyle
oroverrideUserInterfaceStyle
directly
- Instead, set
Patch 4.0.3
fix:
- Fixed an issue with hit test on IOS26
Full Changelog: https://github.com/Mijick/Popups/compare/4.0.2...4.0.3
v4.2.3
- Added “shiny” glass popup close button
- More layout improvements
v4.2.2
- Added
LNPopupCloseButton.Style.glass
,.clearGlass
,.prominentGlass
and.prominentClearGlass
popup close button styles - Added
LNPopupCloseButton.Positioning
to control the positioning of the popup close button within the popup content view
v4.2.1
- Improve scrolling popup content handling
- Title layout improvements
- Default title fonts were slightly adjusted to be in line with iOS 26
- Added
LNPopupBarAppearance.floatingBarShineEnabled
5.21.3 - 5.21 Patch
See all tickets marked for the 5.21.3 release
- Switched image encoding to a context-aware approach with a safe fallback, allowing per-request encoder selection without changing the public API. #3844 @CloudlessMoon
v4.2.0
Significantly expanded and improved custom popup container controller support.
Any UIViewController
can be a popup container view controller. The popup bar can be attached to either the bottom of the screen or above a bottom docking view. If you have a custom container controller, such as a custom tab bar controller, you can override the bottomDockingViewForPopupBar
property to return your designated bottom docking view, and defaultFrameForBottomDockingView
to return the expected frame of the docking view. When presented, the popup bar will appear above the designated bottom docking view. If the container controller needs to reposition the bottom docking view, trigger a layout pass so the popup bar can take the new frame into account.
If you return nil
from bottomDockingViewForPopupBar
, the popup bar will be positioned at the bottom of the screen, or above the appropriate system bottom bar, such as a tab bar or a toolbar.
If your custom container controller supports hiding the designated bottom docking view, implement isBottomDockingViewForPopupBarHidden
and return the correct value. To trigger a popup bar update, trigger a layout pass for your container controller's view. If the bottom docking view is hidden, the popup bar will be positioned at the bottom of the screen.
You can control the margin between the popup bar and the bottom docking view by implementing bottomDockingViewMarginForPopupBar
.
If your bottom docking view is dependent on the safe area of your custom container controller, you might not want to have that be modified by the presentation of the popup bar. In such a case, implement the requiresIndirectSafeAreaManagement
property to return true
. The system will then modify the child controller's safe areas instead of modifying the container controller's safe area.
class MyCustomTabBarController: UITabBarController {
override var bottomDockingViewForPopupBar: UIView? {
return myCustomTabBar
}
override var defaultFrameForBottomDockingView: CGRect {
myCustomTabBar.frame
}
override var isBottomDockingViewForPopupBarHidden: Bool {
!isMyCustomTabBarVisible
}
override var bottomDockingViewMarginForPopupBar: CGFloat {
8.0
}
func toggleMyCustomTabBarVisible() {
UIView.animate(withDuration: 0.4,
delay: 0.0,
usingSpringWithDamping: 1.0,
initialSpringVelocity: 0.0) {
self.isMyCustomTabBarVisible.toggle()
// Animate your bar position here according to isMyCustomTabBarVisible.
self.updateMyCustomTabBarConstraints()
// Trigger a layout pass so that the popup bar animates to the correct position
self.view.layoutIfNeeded()
}
}
}
v4.1.1
- Added
LNPopupBar.inlineAppearance
andLNPopupItem.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
4.7.2
- 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.
- Fixed a bug where the UI of the thumbnail interface might display an error when the permission is "limited".