Во-первых, убедитесь, что ваш кадр на самом деле не меняет размер. Вероятно, он / есть / изменяет размер, но вы ожидаете, что он обрезает его содержимое; это поведение не включено по умолчанию в UIView, и его необходимо установить с помощью:
[[self view] setClipsToBounds:YES];
Чтобы перепроверить и убедиться, что размер вашего кадра не изменился после установки нового кадра, попробуйте записать это:
NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame]));
или просто установить точку останова после изменения и проверить значение в вашем отладчике.