的UIView的drawRect不叫上自动旋转

问题描述:

我有一个添加到视图控制器视图的UIView的drawRect不叫上自动旋转

[self.view addSubview:myView]; 

在我添加视图的自定义视图:

self.autoresizingMask = self.superview.autoresizingMask; 

不过我的看法的drawRect方法不叫当自动旋转...为什么?我需要视图的界限改变,所以我可以重画它在自动旋转...

self.superview.autoresizingMask的值是什么?这可能就是为什么没有改变。无论是显式设置自动调整屏蔽为您希望它做什么,或者如果它没有提供足够的控制,使用ViewController的willAnimationRotationToInterfaceOrientation方法显式设置子视图的框架或触发子视图上的setNeedsDisplay:。

+0

我可以解决这个问题的唯一方法是在视图控制器中设置autoresizeMask ......显然在新的xcode中,你不能在IB中设置它......它只是说了一些关于“拥抱优先级”的内容。 – user1028028

+0

是的,这是新的iOS 6.0自动布局的东西。您仍然可以在代码中设置自动识别掩码。显然,ViewController的视图没有设置自动调整掩码。只要有问题的视图控制器是根视图控制器,那么你的解决方案应该不会影响任何东西,但更好的解决方案是直接在代码中设置子视图上的自动确定屏蔽或使用任何一种方法手动布置视图** [UIViewController willAnimateRotationToInterfaceOrientation:duration:] **或** [UIViewController viewWillLayoutSubviews] **。 – mbroch2