You are resetting your texture on each loop. Try this instead:
BOOL hitTestDidHit = NO;
for (SKSpriteNode *childSprite in [parentNode children]) {
CGRect boundingBox =
CGRectMake(childSprite.position.x-childSprite.size.width/2,
childSprite.position.y-childSprite.size.height/2,
childSprite.frame.size.width,
childSprite.frame.size.height);
if (CGRectContainsPoint(boundingBox, aiming.position)) {
// THIS works like a charm
NSLog(@"%f/%f",boundingBox.origin.x, boundingBox.origin.y);
// THIS only works on the last created boundingBox
hitTestDidHit = YES;
}
}
if(hitTestDidHit) {
[aiming setTexture:[SKTexture textureWithImageNamed:@"aim_hover"]];
} else {
[aiming setTexture:aimDefault];
}
Also I should tell you about the super cool .calculateAccumulatedFrame property which pretty much does what your bounding box does but with children as well.