设备方向更改时,自定义UIView不会旋转

时间:2010-07-18 17:02:05

标签: iphone uiview xamarin.ios

我创建了一个UIView,它有两个控件,一个标签和一个活动指示器(旋转轮),以便在设备同步时显示。由于这个UIViewController需要全局访问,我在应用程序的FinishedLaunching事件中添加它:

window.AddSubview(navigationController.View); window.AddSubview(SyncSpinner.View); window.MakeKeyAndVisible();

我重写了shouldAutoRotate事件并返回true以允许使用设备旋转视图。但是,我无法让这个视图旋转。我甚至尝试从navigationController的视图shouldAutoRotate事件中调用teh shouldAutoRotate事件,但它仍然不会旋转。

如何创建一个非常简单的视图,用作状态对话框,顶部带有标签,中间有微调器,并且正确旋转?

谢谢。

2 个答案:

答案 0 :(得分:1)

类似的事情发生在我身上。 我不知道为什么,但iPhone只会将自动旋转消息发送到最新添加的视图的控制器。

解决方法是生成通知并将其发送到控制器。 在完成的启动方法中使用此代码块:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver: viewController selector:@selector(changeOrientation:) name:UIDeviceOrientationDidChangeNotification object:nil];

答案 1 :(得分:1)

至少在TweetStation上,问题是我需要从第一个UIViewController传播旋转属性。如果顶层UIViewController不支持旋转,嵌套的那些也不支持。

在TweetStation中,我使用帮助顶级类运行我的顶级tabbar控制器:

http://github.com/migueldeicaza/TweetStation/blob/master/TweetStation/Main.cs#L409