one tip from my experience with unity ios and gui, its stay away from buttons or any other interactive gui control, its fine to display stuff, although if you have too much items to display the draw call skyrockets to space, but buttons are specially crappy on ios… unresponsive, buggy and heavy on resources, they never seem to catch the touches right, so i just made my own replacement for buttons drawing the texture and basic Rectangle check for touches
also , gui can be scaled very easily with some tricks, like getting the aspect ratio of the screen in comparison with the intended resolution
i use this to scale rectangles for touch checking
Vector2 resMultiplier = new Vector2((float)1 * Screen.width / 1024, (float)1 * Screen.height / 768);
also you can scale the unity gui in the same manner
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity,new Vector3((float)1.0 * Screen.width/1024, (float)1.0 * Screen.height/768, 1.0f));
use one or the other but not both, because gui elements are drawn taking rectangles as their position and size, if you scale the rectangle, and then tell gui to scale everything too, you will end up with wrong looking gui and inaccurate touch checking
for the resolutions of iOS devices
iPhone and iPod Touch Retina is 960x640
pre Retina iPhone and iPod Touch is 480x320 which is Retina / 2
and iPad and iPad 2 is 1024x768
between iphone and ipad not only they used different resolutions, but also different aspect ratios, so that kind of scaling tricks are essential if you intend to release something for both
hope this helps