Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Implementation of iOS 6's folders.
branch: master

Merge pull request #20 from eoghain/master

Make default shadow opacity 1.0.
latest commit dc7e4fc543
Jonathan Willing authored

README.md

JWFolders is a class that attempts to mimic the folder animation present on the iOS SpringBoard.

Preview

JWFolders is being used in my commercial application, QuickWeather. Depicted here is a beta version of the app:

ExampleFolder

Usage

Just include the entire folder, JWFolders, in your project. Import JWFolders.h in the class in which you wish to create the folder.

#import "JWFolders.h"

Here's a quick example of how to create a new folder and open it upwards.

JWFolders *folder = [JWFolders folder];
folder.contentView = self.sampleFolder.view;
folder.containerView = self.view;
folder.position = openPoint;
folder.direction = JWFoldersOpenDirectionUp;
folder.contentBackgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"noise"]];
folder.shadowsEnabled = YES;
folder.showsNotch = YES;
[folder open]; // opens the folder.

An issue can arise if the folder is set to show the notch, and the position is set to a point with an x-coordinate of 0. The notch will appear to be cut off on the left side of the screen. This can be simply resolved by providing a non-zero x-coordinate. Most likely this will be the center of the item from which you present the folder.

Please check the header file for complete documentation.

ARC

The project currently uses Automatic Reference Counting, which means that if your project does not use ARC there will be memory leaks. There are no plans to create a non-ARC branch at this time.

Important note

This library makes use of CALayer's renderInContext: method to render the current state of your view into an image. Unfortunately, renderInContext: does not take 3D transforms into account. If you would like this to be fixed, please file a radar.

License

JWFolders is licensed under the BSD License.

Todo

  • Finish implementing the animated notch content to complete the effect.
  • Optimize the renderInContext: call. I fear this is impossible.

    Please feel free to fork the project and improve it as much as possible!

About Me

I'm a developer and designer with a passion for great interface design and detail. See my applications, learn more about me, or get in touch. I'm on Twitter as well: @willing.

Something went wrong with that request. Please try again.