[英]iphone - subview rotation problem
我有一个UIView根和一个UIView A作为其子视图
我不允许旋转根,所以我写根类
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return NO;}
但是我允许旋转根的子视图(A),所以在A类中,我写了
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;}
但是似乎根及其子视图A都不能旋转。
我应该如何允许A旋转而不是root?
谢谢
视图不响应shouldAutorotateToInterfaceOrientation,而视图控制器则响应。 如果视图控制器说它将旋转,则其视图和所有子视图将旋转。 如果您的视图控制器说它不会旋转,那么它的视图将不会旋转,子视图也不会旋转。
有两种可能的方法可以解决您的问题,具体取决于您要执行的操作:
UIApplication
提供了一种将键窗口作为UIWindow对象获取的方法,这可能是您第一个想法想要的。 UIWindow继承自UIView,因此适用于添加和安排子视图的所有标准机制。
对于后者,您需要在相关视图上设置转换。 从超级视图获取变换,获取逆并将其设置在视图上。 有关更多详细信息,请参见CGAffineTransform 。 提到的CoreAnimation问题是,以最短的路线从一转到另一180度的过渡(如CoreAnimation所采取的)提供了两种可能的解决方案-一种为顺时针,另一种为逆时针。 实际上,在纵向模式下,您需要在视图的变换中添加不可见的偏差,以确保CoreAnimation在纵向和纵向倒置之间旋转时选择正确的偏置。 如果您使用的是iPhone,则在该设备上不支持UIInterfaceOrientationPortraitUpsideDown
是可以接受的(大多数Apple应用程序不支持),因此实际上不支持该方向可能更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.