Ручное вращение iPhone неправильно расположено - PullRequest
0 голосов
/ 17 ноября 2010

Мне удалось вручную обнаружить вращение и установить свои собственные эффекты вращения между двумя UIViewControllers. Когда в первом повороте на альбомную заставляет второе нажатие с ручной анимацией. Строка состояния перемещается в правильную ориентацию. Однако представление, загруженное вторым UIViewController, находится не в том положении, в котором я ожидал. Вместо этого есть поле слева, где ранее находилась строка состояния, и поле / поле внизу, которое я ожидал заполнить представлением.

How the rotation appears

(Нажмите, чтобы увеличить. Оранжевый прямоугольник просто указывает на то, где 0,0 находится в повернутом UIView, CustomView)

Код, который я использую в контроллере вида для вращения:

-(void)loadView {
    CustomView *customView = [[CustomView alloc] initWithFrame:CGRectMake(0, 20, 480, 300)];
    self.view = customView;

    CGAffineTransform rotate = CGAffineTransformMakeRotation(degreesToRadian(90));
    [self.view setTransform:rotate];

    [customView release];
}

Любая помощь будет высоко ценится!

РЕДАКТИРОВАТЬ удалось решить после множества проб и ошибок подходов - ответ представлен ниже. Возможно, есть более элегантное / очевидное решение - если это так, не стесняйтесь предоставлять!

Ответы [ 2 ]

0 голосов
/ 17 ноября 2010

Мне удалось решить эту проблему, установив границы представления после преобразования:

self.view.bounds = CGRectMake(20, -20, 480, 300);
0 голосов
/ 17 ноября 2010

попробуйте это на viewcontrollers.Решена проблема с клипом в 20 пикселей (высота строки состояния), когда я получал полноэкранные подпредставления для отображения.

[viewcontroller1.view setCenter: CGPointMake (viewcontroller1.view.center.x, viewcontroller1.view.center.y)-20)];

и / или

[viewcontroller2.view setCenter: CGPointMake (viewcontroller2.view.center.x-20, viewcontroller2.view.center.y)];

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