Latest 0.1.2
License MIT
Platforms ios 7.0, requires ARC
Frameworks SpriteKit

PIOSpriteKit is a utility library for Apple’s SpriteKit. It’s goal is to eliminate some boilerplate code and add some usefull components.

Adding to your project

Simply add the files in the PIOSpriteKit/Classes to your project. You will also need to link your project with SpriteKit.framework.

If you use CocoaPods, just include following line in your Pod file:

pod 'PIOSpriteKit'

What’s included


PIOScrollSceneViewController lets you scroll and zoom your scene. It consists of two main classess: PIOScrollScene and PIOScrollSceneViewController. The setup is really simple:

First of all setup your scene

  1. Make sure your scene inherits from PIOScrollViewScene

    @interface ExampleScrollScene : PIOScrollScene
  2. Initialize rootNode property of your scene with a SKSpriteNode you wish to pan and zoom. [PIOScrollScene rootNode] is the main node of the scene.

    - (instancetype)initWithSize:(CGSize)size {
        if([super initWithSize:size] != nil) {
            self.rootNode.texture = [SKTexture textureWithImageNamed:@"sample_image.jpg"];
            self.rootNode.size    = self.rootNode.texture.size;
        return self;
  3. Override PIOScrollScene properties that let’s you specify minimum maximum and initial zoom zcale (1 is a default value)

    - (CGFloat)minimumZoomScale {
        return 0.5;
    - (CGFloat)maximumZoomScale {
        return 1.0;
    - (CGFloat)initialZoomScale {
        return 0.5;

Setup your view controller

  1. Make sure your view controller inherits from PIOScrollSceneViewController

    @interface ExampleScrollViewController : PIOScrollSceneViewController
  2. Present your scene using presentScene method.

    - (void)viewWillLayoutSubviews {
        [super viewWillLayoutSubviews];
        if (self.sampleScene == nil) {
            //[PIOScrollSceneViewController spriteKitView] is an IBOutlet so you can hook it up to your SKView in the storyboard)
            self.sampleScene    = [[ExampleScrollScene alloc] initWithSize:self.spriteKitView.frame.size];
            [self presentScene:self.sampleScene];


PIOTiledNode lets you create node that consists of several tiles.

Setup your tile node

  1. Make sure your node inherits from PIOTiledNode

    @interface ExampleTiledNode : PIOTiledNode
  2. Override PIOTiledNode properties that let’s you specify number of rows the node consists of

    - (uint)rowsCount {
        return 1;
    - (uint)columnsCount {
        return 2;
  3. Override imageFileNameForRow:column method, that returns tile file name for given row and column

    - (NSString *)imageFileNameForRow:(NSUInteger)row column:(NSUInteger)column {
        return [NSString stringWithFormat:@"sample_image_%lu%lu.jpg", (unsigned long) row, (unsigned long) column];

Use your tiled node

  1. Call [PIOTiledNode load] method to load your tile node

    SKSpriteNode *sampleNode;
    sampleNode  = [[[ExampleTiledNode alloc] init] load];
  2. Use it as any other node

You can find the working example app in Examples folder. Enjoy!


PIOSpriteKit is under MIT License



Latest podspec

    "name": "PIOSpriteKit",
    "version": "0.1.2",
    "summary": "PIOSpriteKit is a utility library for Apple's SpriteKit. It's goal is to eliminate some boilerplate code and add some usefull components.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": "Piotr Zbyszynski",
    "social_media_url": "",
    "platforms": {
        "ios": "7.0"
    "source": {
        "git": "",
        "tag": "0.1.2"
    "source_files": [
    "frameworks": "SpriteKit",
    "requires_arc": true

Pin It on Pinterest

Share This