Поверните главный экран и поверните назад подпредставление - PullRequest
0 голосов
/ 04 июля 2010

Как мне повернуть базовый вид и при этом убедиться, что его подпредставления все еще находятся в своих правильных местах?

--------                            
|X     |   After 90 degree rotate and stretch
|      |   this should remain the same
|      |
|     Y|
--------

Я предполагаю, что мне нужно повернуть на 90 градусов и растянуть в соответствии с соотношением окон и выполнитьнапротив на подпредставлении?

следующее не работает ...

- (void) performTransformation:(UIView*)view isBase:(BOOL)isBase
{
    if(isBase) {
        [view.layer setAffineTransform:CGAffineTransformConcat(
            CGAffineTransformMakeRotation(M_PI * 0.5),
            CGAffineTransformMakeScale(-(3.0/4.0), (4.0/3.0)))];
    } else {
        [view.layer setAffineTransform:CGAffineTransformConcat(
            CGAffineTransformMakeScale(-(4.0/3.0), (3.0/4.0)),
            CGAffineTransformMakeRotation(-M_PI * 0.5))];
}

1 Ответ

0 голосов
/ 04 июля 2010

Вы вращаетесь в ответ на изменение ориентации устройства?Если это так, вы можете просто использовать UIViewController -shouldAutorotateToInterfaceOrientation: метод для поворота вида.

Чтобы сделать то, что вы описываете, вы можете установитьчастное лицо UIView s 'autoresizingMask свойство.В вашем примере вы должны сделать следующее:

[viewX setAutoresizingMask:(UIViewFlexibleRightMargin |
                            UIViewFlexibleBottomMargin )];

[viewY setAutoresizingMask:(UIViewFlexibleTopMargin |
                            UIViewFlexibleLeftMargin )];

Этот код установит, что первое представление (которое я назвал viewX) останется в верхнем левом углу, а второе представлениес нижним правым.

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