Change Log

All notable changes to this project will be documented in this file.

9.0.6

Features

9.0.5

Fixes

9.0.4

9.0.3

Fixes

9.0.2

Fixes

9.0.1

Fixes

9.0.0

Features

Changes

Fixes

8.0.5

Fixes

8.0.4

Features

Fixes

8.0.3

Features

Fixes

8.0.2

Changes

8.0.1

Fixes

8.0.0

Changes

Fixes

7.0.1

Changes

Features

7.0.0

Changes

Features

SwiftMessagesSegue provides 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.

  1. Define sufficient width and height constraints in your view controller such that it sizes itself.
  2. Set the preferredContentSize property (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.
  3. Add explicit width and/or height constraints to segue.messageView.backgroundView.

Note that Layout.topMessage and Layout.bottomMessage are 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.

The KeyboardTrackingView class 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 KeyboardTrackingView into your app even when you're not using SwiftMessages. Install into your view hierarchy by pinning KeyboardTrackingView to 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. KeyboardTrackingView works 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 KeyboardTrackingView for configuration options.

6.0.2

Features

6.0.1

Features

This change adds the ability to configure the delay by customizing the animator. For example, to set the delay to zero, one would do:

let animation = PhysicsAnimation()
animation.panHandler.hideDelay = 0
config.presentationStyle = .custom(animator: animation)

6.0.0

Changes

Fixes

5.0.1

Fixes

5.0.0

Breaking Changes

Features

Fixes

4.1.4

Bug Fixes

Improvements

4.1.3

Features

Bug Fixes

4.1.2

Features

Bug Fixes

4.1.1

Features

4.1.0

Features

Fixes

4.0.0

Features

Bug Fixes

3.5.1

Bug Fixes

3.5.0

Features

Bug Fixes

3.4.0

Features

3.3.4

Features

Bug Fixes

3.3.3

Bug Fixes

3.3.2

Improvements

3.3.1

Bug Fixes

3.3.0

Features

3.2.1

Bug Fixes

3.2.0

Features

This option is useful for displaying a message when a process is taking too long but you don't want to display the message if the process completes in a reasonable amount of time.

For example, if a URL load is expected to complete in 2 seconds, you may use the value unknown(delay: 2, minimum 1) to ensure that the message will not be displayed most of the time, but will be displayed for at least 1 second if the operation takes longer than 2 seconds. By specifying a minimum duration, you can avoid hiding the message too fast if the operation finishes right after the delay interval.

Bug Fixes

3.1.5

Bug Fixes

3.1.4

Bug Fixes

3.1.3

Features

3.1.2

Features

Bug Fixes

3.1.1

Features

3.1.0

Features

3.0.3

Features

3.0.2

Features

3.0.1

Improvements

3.0.0

Breaking Changes

2.0.0

Breaking Changes

1.1.4

Bug Fixes

1.1.3

Features

Bug Fixes

1.1.2

Bug Fixes

1.1.1

Features

Bug Fixes

1.1.0

Improvements

API Changes

1.0.3

Improvements

Bug Fixes

1.0.2

Features

1.0.1

1.0.0