Like parfait, it has layers! 🍰

A new release of Reveal (v15) is available to all users with a current license, and as a 14-day trial.

Layer Inspection Support (Beta)

Reveal main window showing a CALayer selected and being inspected

Reveal main window showing a CALayer selected and being inspected

Reveal now supports inspecting custom Core Animation layer hierarchies. Sublayers manually added into views’ backing layers now show up in the Sublayers group in the Outline, and are displayed as selectable items in the Canvas.

Reveal inspector panel showing the new View/Layer scope bar

Reveal inspector panel showing the new View/Layer scope bar

Layer properties, previously combined into a single Layer Inspector, are now separated into the familiar Identity, Attributes and Layout inspectors. When a view is selected, you can use a scope bar to switch these inspectors between showing properties of that view and its backing layer.

Layer inspection support is currently in beta - there are known issues that we’re working on, and we’re very open to input on this feature, so please get in contact if you have any feedback.

Thanks to Concepts for letting us use their amazing color wheel to debug and demo this feature!

Known issues

  • Content outside of layer’s bounds is not rendered in the Canvas, even if the layer has masksToBounds disabled. This makes layers with zero bounds size effectively invisible.
  • Some properties of CALayer and its subclasses (e.g. those defined in CAMediaTiming protocol) are missing from inspectors, while other properties are not editable and/or displayed as a string.
  • Filtering by name, address or class of a view’s backing layer produces no results.

Layout Constraints Inspection Improvements

Reveal inspector panel showing the revised participating constraints

Reveal inspector panel showing the revised participating constraints

  • Optional constraints are now rendered as dashed lines in the Canvas.
  • Optional constraints now include their priority in labels displayed in the Outline and Participating Constraints inspector.
    • This means that you can now also use the Filter to find constraints with a specific priority – or any non-required priority. Simply use the @ character in the filter field: it will match the desciption of optional constraints.
  • Participating Constraints inspector is now divided in two groups: Participating Constraints Affecting Layout and Other Participating Constraints. As the names suggest, the first group includes constraints that directly affect position or size of the selected view or layout guide, while the remaining constraints connected to that item show up in the second group.
  • Constraints displayed in the Participating Constraints inspector are now sorted by layout attributes, relation and other properties. As a result, constraints displayed for different views or layout guides follow a consistent order, regardless of the order in which they were originally added into the view hierarchy.
  • Labels of constraints diplayed in the Participating Constraints are now more context-aware and shorten items such as superview (for views) and owningView (for layout guides).
  • More kinds of constraints are now classified as “system” and use blue colour for icons and Canvas lines. For example, this includes constraints managed internally by UIStackView.

Bugs Fixed

  • Inspector for the directionalLayoutMargins property is now displayed correctly.
  • Added missing inspectors for properties declared in UITextDraggable protocol: textDragActive, textDropActive, textDragOptions.
  • Participating Constraints inspector now correctly includes descriptions of firstBaseline and margin-related layout attributes.
  • Changes to the list of windows on the screen are now detected correctly when the view hierarchy is modified using inspectors.
  • Precise ordering of windows that share the same level is now preserved in the Outline and Canvas.
  • If a view goes offscreen but is not deallocated while Reveal is collecting snapshot images (e.g. due to an animation completion), it is now captured correctly instead of showing up empty.
  • Layout guide items in the Outline are now updated correctly when their identifier changes.
  • Fixed a crash occurring when inspecting applications running in Simulator with views larger than 16384 pixels in size.
  • New snapshots of applications running on devices and simulators with non-P3 displays will no longer appear “over-exposed” in the Canvas when running High Sierra.
  • Timeout for launching Soundstagram has been increased to avoid failing due to simulator environment taking a long time to initialise.
  • Fixed Soundstagram failing to launch in some environments with lots of simulators.

Minimum System Requirements

  • macOS 10.12
  • iOS 8
  • tvOS 9
  • Xcode 8.0

Support

Please report any problems you experience or give us feedback from within Reveal (see “Help → Submit Feedback”), or via our support forum.

Vlas Voloshin
Vlas Voloshin
Developer
by Itty Bitty Apps