Я использую раскадровку для проекта. У меня есть верхнее меню с 3 кнопками (UIView
с 3 UIButton
в нем) с таким же расстоянием между ними.UIView перестраивается при повороте
Я хотел бы растянуть это меню до максимальной ширины при вращении и увеличить расстояние между кнопками.
я сделал следующее:
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)orientation {
[super didRotateFromInterfaceOrientation:orientation];
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation)){
[self prepareLandscapeLayout];
}
}
- (void) prepareLandscapeLayout {
[[self topMenu] setFrame:CGRectMake(0, 0, IS_IPHONE_5 ? 568 : 480, 59)];
[[self cameraButton] setCenter:CGPointMake(232, 26)];
[[self settingsButton] setCenter:CGPointMake(288, 26)];
[[self videoList] setCenter:CGPointMake(340, 26)];
}
prepareLandscapeLayout
функция вызывается после того, как вращение, но кнопки остаются в своих исходных позициях. Я также вижу, как topMenu
растягивается после вращения (я изменил цвет фона).
Есть ли идеи о том, что я могу сделать неправильно?
Установка центра кнопки не растянет его, он просто переместит его. Измените фактический кадр кнопки, как вы делаете это с верхним меню – danypata
@ danypata Я не хочу изменять их размер, мне просто нужно поместить их в новую позицию – user2786037