- Swift 5
- Remove deprecated APIs
- #313 Improved sizing on iPad
SwiftMessagesSegueprovides default view controller sizing based on device, with width on iPad being limited to 500pt max. However, it is recommended that you explicitly specify size appropriate for your content using one of the following methods.
- Define sufficient width and height constraints in your view controller such that it sizes itself.
- Set the
preferredContentSizeproperty (a.k.a “Use Preferred Explicit Size” in Interface Builder’s attribute inspector). Zeros are ignored, e.g.
CGSize(width: 0, height: 350)only affects the height.
- Add explicit width and/or height constraints to
Layout.bottomMessageare always full screen width. For other layouts, the there is a maximum 500pt width on for regular horizontal size class (iPad) at 950 priority. This limit can be overridden by adding higher-priority constraints.
- #275 Add ability to avoid the keyboard.
KeyboardTrackingViewclass can be used to cause the message view to avoid the keyboard by sliding up when the keyboard gets too close.
// Message view var config = SwiftMessages.defaultConfig config.keyboardTrackingView = KeyboardTrackingView() // Or view controller segue.keyboardTrackingView = KeyboardTrackingView()
You can incorporate
KeyboardTrackingViewinto your app even when you’re not using SwiftMessages. Install into your view hierarchy by pinning
KeyboardTrackingViewto the bottom, leading, and trailing edges of the screen. Then pin the bottom of your content that should avoid the keyboard to the top
KeyboardTrackingView. Use an equality constraint to strictly track the keyboard or an inequality constraint to only move when the keyboard gets too close.
KeyboardTrackingViewworks by observing keyboard notifications and adjusting its height to maintain its top edge above the keyboard, thereby pushing your content up. See the comments in
KeyboardTrackingViewfor configuration options.
- #276 Add ability to hide message without animation
- #272 Add duration for
- #278 Make pan gesture recognizers public