Всегда центр UIView - PullRequest
7 голосов
/ 15 июня 2010

У меня есть небольшой UIView, который должен появляться всегда в центре экрана. Это прекрасно работает в портретном режиме, но не в альбомной.

Для рисования UIView я использую:

myView.frame = CGRectMake((visibleArea.size.width - MY_VIEW_WIDTH) / 2, (visibleArea.size.height - MY_VIEW_HEIGHT) / 2, MY_VIEW_WIDTH, MY_VIEW_HEIGHT);
myView.autoresizingMask = (
                            UIViewAutoresizingFlexibleTopMargin |
                            UIViewAutoresizingFlexibleBottomMargin |
                            UIViewAutoresizingFlexibleLeftMargin |
                            UIViewAutoresizingFlexibleRightMargin
                           );

Есть идеи, чего не хватает?

Ответы [ 4 ]

21 голосов
/ 29 сентября 2010

Почему бы не попробовать

myView.center = controller.view.center

2 голосов
/ 14 октября 2010

Приложение вращается автоматически?

Я имею в виду, как выглядит ваш метод -[UIViewController shouldAutorotateToInterfaceOrientation:]?У вас есть начальная и поддерживаемая ориентации в файле Info.plist?

Проверьте также родительское представление autoresizesSubviews свойство.

1 голос
/ 18 мая 2012

Я создал свойство, чтобы дать мне границы, основываясь на ориентации устройства. (Это в категории на UIScreen.)

- (CGRect)boundsWithRespectToOrientation
{
    CGRect bounds = self.bounds;

    if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]) && bounds.size.height > bounds.size.width)
        bounds = CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.height, bounds.size.width);
    else if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]) && bounds.size.width > bounds.size.height)
        bounds = CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.height, bounds.size.width);

    return bounds;
}
1 голос
/ 15 июня 2010

Может быть, вы не измените ориентацию строки состояния.Если вы этого не сделаете, устройство считает, что ориентация по-прежнему портретная, а не альбомная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...