I got similar problem with iphone5. Everything is scaled and my UI is not shown properly and sometimes is even cropped.
Related to following link: [[http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Multi_resolution_support]]
“When using NoBorder mode, there are some areas of the background out of scope. If you use absolute coordinates based on design resolution size,
some of your game UI *will not be shown completely.* To resolve this issue, you have to make the coordinates base on ‘visible rectangle’. You can get the origin point of ‘visible rectange’ by ‘CCDirector::sharedDirector()->getVisibleOrign()’.
Together with ‘CCDirector::sharedDirector()->getVisibleSize()’,you will be able to confirm 9 points on the screen. They are ‘Left’,‘Right’, ‘Top’,‘Bottom’,‘Center’,‘LeftTop’,‘RightTop’,‘LeftBottom’ and ‘RightBottom’.
Your game will be really full screen display if all the coordinates of your game is base on these nine points.
About how to calculate these points, please refer to ‘VisibleRect’ class in TestCpp project.”
It seems to have the key to solve it, but I didn’t get the point of it
My last desperate try was to set designResolutionSize dynamically, so if device is iphone5 set it to:
designResolutionSize = cocos2d::CCSizeMake(568, 320);and if it is iphone4/4s
designResolutionSize = cocos2d::CCSizeMake(480, 320);
It works for CCScale9Sprite (they keep with desired size), CCSprites are scaled (expected behavior), but CCControlButtons are scaled and even get weird shapes :S