Skip to content
Pinned rotation like the iOS camera. It's great. Use it.
Objective-C Shell Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Version License Platform


PXPinnedRotation allows you to create views that use pinned rotation:

Pinned Rotation

Your views will stay in place but rotate when the phone rotates like with the library and filter buttons in the Camera app in iOS.

There are a few things that you need to do to use PXPinnedRotation:

  1. Subclass PXPinnedRotationView and PXPinnedRotationViewController.
  2. Call [self addSubviewToAnimate:] with your animated subviews (buttons, labels, etc.).
  3. Call [self manuallyStartLayoutPass] at the end of init.
  4. Implement -(NSArray*)calculateBaseConstraintsBeforeLayoutPass and put all the code in here that you would normally put in -(void)updateConstraints.

Any views you have specified to animate will be animated. Anything else will not change at all during rotation.

There are blocks you can assign on the view controller if you need additional behavior during or after rotation. Check out the headers for more info.

There's also the example project shown above. To run it, clone the repo, and run pod install from the Example directory first.


PXPinnedRotation is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "PXPinnedRotation"


Daniel Blakemore,


PXPinnedRotation is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.