因此,我们正在使用第三方HUD模块。它有点松懈,并且让它弹出一切我扩展它以使用代码展示自己
[[[UIApplication sharedApplication] keyWindow] addSubview:self.view];
但是,在横向模式或颠倒时,弹出窗口会旋转(或更准确地说不旋转,始终与设备对齐,而不是界面)。我在iOS上相当新,所以我不确定为什么会这样,但我添加了一些代码来补偿
bool go = false;
float angle = 0.0;
if (mode == OLM_LandscapeLeft) // I calculate this further above, it works
{
go = true;
angle = 90;
}
[[[UIApplication sharedApplication] keyWindow] addSubview:self.view];
if (go)
{
float rads = (angle) / 180 * M_PI;
CGAffineTransform transform = CGAffineTransformRotate(CGAffineTransformIdentity, rads);
self.view.transform = transform;
}
无论是在keyWindow.addSubview之前还是之后应用转换,这似乎都没有效果。
是否有正确或至少有效的方法?如果有人可以告诉我为什么这种addSubView似乎忽略了界面方向,那就太棒了。
答案 0 :(得分:0)
也许您正在使用UIDeviceOrientation但应该使用UIInterfaceOrientation。
您可以通过以下方式接收此信息:
[[UIApplication sharedApplication] statusBarOrientation]
和Makros:
UIInterfaceOrientationIsLandscape
UIInterfaceOrientationIsPortrait
你不必使用:
OLM_LandscapeLeft // might have a computation bug