You can create another SKSpriteNode
with the next texture and call addChild:
on the original node, then change the position of the new node relative to the parent node.
This is inside my subclass of SKSpriteNode
;
UIImage* bottom = [[UIImage imageNamed: @"obstacle_base"] resizableImageWithCapInsets: UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage* top = [UIImage imageNamed: @"obstacle_top"];
SKTexture* bottomT = [SKTexture textureWithImage: bottom];
SKTexture* topT = [SKTexture textureWithImage: top];
[self setTexture: bottomT];
// create top
SKSpriteNode* topNode = [[SKSpriteNode alloc] initWithTexture: topT];
topNode.position = CGPointMake(0, height/2 - topNode.size.height/2);
[self addChild: topNode];