I think the problem in your case resides in background image of frame rather the subview . Check the UIImageView displaying your background if it is resizing for background image . Counter check the frame of the Subview by using
NSLog(@"Subview Frame = %@",NSStringFromCGRect(subview.frame))
check that the screen sizes for both retina and non-retina is same . i.e. (either is should be 3.5 inches for both OR it should be 4 inches for both). Also appliy autoresizing on your background imageview