2012-06-09 1 views
4

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

- (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]; 
} 

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

enter image description here

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

ответ

2

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

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

к этому ...

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

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