I am using the CATransform3D transform to apply a pseudo 3D perspective effect for presentation.
I use the gyroscope in iPhone 4 to control the conversion options.
In the view I am converting, there are some subspecies:

The result looks something like this:

My next task is to either prohibit the conversion of the subview to the main transformation, or apply the inverse transformation so that the sub-items remain unaffected.
My goal is to make each sub-point perpendicular to supervision, giving the impression that they are "standing."
The code I use to convert:
- (void)update:(NSTimer *)timer { roll = [[[_manager deviceMotion] attitude] roll]; pitch = [[[_manager deviceMotion] attitude] pitch]; yaw = [[[_manager deviceMotion] attitude] yaw]; CALayer *layer = [self.view layer]; CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity; rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, -90 * M_PI / 180.0f, 0.0f, 0.0f, 1.0f);
I tried using the following code in an attempt to invert the transformation by applying a 90 degree perspective rotation to the subzone around the Y axis:
for (UIView *subview in [self.view subviews]) { CALayer *sublayer = [subview layer];
but all this can be done, since the subview disappears. If I try to use an existing transform from a layer using [sublayer transform] and apply a 3D rotation to it, then the subview will flicker but not rotate.
My knowledge of Matrix math is small, so I donβt know if this fits correctly.
How can I make subviews sit perpendicular to a super view?