Following are just a few of the UI components which are specialized for the Tangram application.
PieceTrayLayoutA custom layout which holds tans not yet placed on the playing field. This contains operations for dragging tans to and from the playing field, keeping track of how many pieces are available.
PlayTableViewThe main play area where puzzles can be built. This contains most of the code for drawing the tans in play, moving them as the user drags within a tan boundary, rotating them as the user moves them with two fingers, moving the play field when the user drags outside of any tans, and zooming in and out of the play field when the user pinches or stretches it with two fingers.
TangramPuzzleViewA custom view that displays a static Tangram puzzle. It contains
mostly the same drawing code as PlayTableView, but none of the
interactions. This is used both to display the goal in the corner
when working on a puzzle and also to show previews of puzzles when
browsing the library.