Iphone 为什么要按顺序为UIView变换属性赋值?
在阅读示例代码时,我发现了一些关于方向更改的代码。有趣的是self.view的transform属性是按顺序赋值的。从逻辑上讲,第一个赋值似乎没有任何效果,因为它被后面的赋值覆盖了Iphone 为什么要按顺序为UIView变换属性赋值?,iphone,ios,view,transform,Iphone,Ios,View,Transform,在阅读示例代码时,我发现了一些关于方向更改的代码。有趣的是self.view的transform属性是按顺序赋值的。从逻辑上讲,第一个赋值似乎没有任何效果,因为它被后面的赋值覆盖了 - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (UIInterfaceOrienta
- (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);
}
}
doc说,在定向动画实际发生之前,调用方法WillAnimateRotationInterfaceOrientation
那么,self.view.transform的赋值实际上就像将值推送到堆栈一样工作?或者Cocoa Touch如何知道视图应该首先设置为CgaffinetTransfrMindEntity,然后再设置为另一个值?嗯,标识转换本身并没有任何作用。所以这里的双重任务是没有意义的 顺便说一句:来自苹果的样本只使用单一赋值:
我同意,那些分配身份矩阵的行似乎毫无意义。这个示例代码来自哪里?来自OK的书的源代码,他们犯了一个错误。这种情况经常发生。我会向他们报告这一点,以便他们能够纠正它。没什么大不了的。