Before I run deep into code logic, I want to ask if someone has this problem too.
I have a layer and 3 sprites: s1, s2 and s3.
If I add s1, s2 and s3 as layer’s child, and the scale is perfect, without any problems.
But if I add s1 as layer’s child, s2 as s1’s child and s3 as s2’s child.
It will be wrong scale size on iPhone, but seems fine on iPhone Retina.
I still don’t know why right now, but I may try to trace the code to find what happened later.
BTW, these three sprites will be scaled to 0.5 on iPhone(480x320), because I share the textures between iPhone Retina and iPhone.