Introspect is small set of tools for iOS that aid in debugging user interfaces built with UIKit.
It's especially useful for UI layouts that are dynamically created or can change during runtime, or for tuning performance by finding non-opaque views or views that are re-drawing unnecessarily. It's designed for use in the iPhone simulator, but can also be used on a device.
It uses keyboard shortcuts to handle starting, ending and other commands. It can also be invoked via an app-wide UIGestureRecognizer if it is to be used on the device.
- Controlled via app-wide keyboard commands
- Highlighting of view frames
- Displays a views origin & size, including distances to edges of main window
- Move and resize view frames during runtime using shortcut keys
- Logging of properties of a view, including subclass properties, actions and targets (see below for an example)
- Logging of accessibility properties — useful for UI automation scripts
- Manually call setNeedsDisplay, setNeedsLayout and reloadData (for UITableView)
- Highlight all view outlines
- Highlight all views that are non-opaque
- Shows warning for views that are positioned on non-integer origins (will cause blurriness when drawn)
- Print a views hierarchy to console (via private method recursiveDescription) to console