Зачем присваивать значение для свойства преобразования UIView в последовательности? - PullRequest
1 голос
/ 27 декабря 2011

При чтении примера кода я нашел некоторый код об изменении ориентации.Интересно то, что transform свойство self.view присваивается со значением в последовательности.Логически кажется, что первое назначение не имеет никакого эффекта, поскольку оно перезаписывается следующим назначением.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (UIInterfaceOrientationPortrait == toInterfaceOrientation) 
    {
        self.view = portraitView;

        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(0));

        self.view.bounds = CGRectMake(0, 0, 320, 480);
    } else if (UIInterfaceOrientationLandscapeLeft == toInterfaceOrientation) {
        self.view = landscapeView;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(-90));

        self.view.bounds = CGRectMake(0, 0, 480, 320);
    } else {
        self.view = landscapeView;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));

        self.view.bounds = CGRectMake(0, 0, 480, 320);
    }
}

В документе сказано, что метод willAnimateRotationToInterfaceOrientation вызывается до того, как анимация ориентации действительно имеет место,

Итак, присвоение self.view.transform на самом деле работает как выталкивание значения в стек?или как Cocoa Touch узнает, что вид должен быть сначала установлен на CGAffineTransfrmIndentity , а затем на другое значение?

1 Ответ

2 голосов
/ 27 декабря 2011

Ну, преобразование идентичности ничего не делает само по себе.Поэтому двойные назначения здесь бессмысленны.

Кстати: образцы Apple используют только одиночные назначения: образец GKTank

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