Making flexible layouts (that change with content) is quite painful. I worked into a solution to simplify the way to accomplish nice looking interfaces with dynamic content (and most important changing dimensions and position of elements). Even for the example I show bellow it seems fairly complex (although not fully implemented) but by using the provided frame method it would be not just longer but rather harder to read.
Using the builder pattern this class can be used to help with the rendering of UIViews on iPhone interfaces. It is really helpful if you are doing "flexible" layout for a UITableViewCell since it keeps a copy of the original frame. This is useful because we can have member variables with the FrameControl instances for each of the views that require to be moved around and reset to the original state before doing all the layout. (see --)
The normal behavior is to call [control] to apply the changes but if you are using them as local variables they get automatically committed when the FrameControl instance is released (or autoreleased).
It also eases the layout process if you have the tag of the views assigned in IB and then use an NSArray to cycle through all the views.
Hope you enjoy.