Горизонтальное центрирование UIView с использованием маски автоматического изменения размера не работает

У меня возникают проблемы с центрированием UIView в середине подробного представления в шаблоне приложения master-detail в iOS5. Представление имеет меньшую ширину, чем экран iPad, и оно всегда должно отображаться в центре, независимо от ориентации устройства. Вот что я пробовал....

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view setAutoresizingMask:(UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin)];
    [self.view.layer setBorderWidth:2.0F];
    [self.view.layer setBorderColor:[[UIColor orangeColor] CGColor]];

    // Do any additional setup after loading the view, typically from a nib.
    UIView *someContainerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 600.0F, 56.0F)];
    [someContainerView.layer setBorderWidth:2.0F];
    [someContainerView.layer setBorderColor:[[UIColor greenColor] CGColor]];
    [someContainerView setAutoresizingMask:(UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin)];
    [self.view addSubview:someContainerView];

    [self configureView];
}

Вот как выглядит вид

введите здесь описание изображения

Может кто-нибудь сказать мне, что я пропускаю здесь????


person vikmalhotra    schedule 09.06.2012    source источник


Ответы (1)


Хорошо, вот что я решил эту проблему. При создании UIView я изменил это

CGRectMake((0, 0, 660.0f, 56.0F)];

к этому...

CGRectMake((self.view.bounds.size.width-660.0F)/2, 0, 660.0f, 56.0F)];

Поскольку я использую маску автоматического изменения размера с гибким левым/правым полем, поэтому мне действительно нужно расположить UIView в центре, чтобы автоматическое изменение размера работало, сохраняя левое/правое поля при вращении представления.

person vikmalhotra    schedule 09.06.2012