旋转HUD弹出窗口

时间:2014-09-25 15:26:52

标签: ios objective-c xcode

因此,我们正在使用第三方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似乎忽略了界面方向,那就太棒了。

1 个答案:

答案 0 :(得分:0)

也许您正在使用UIDeviceOrientation但应该使用UIInterfaceOrientation。

您可以通过以下方式接收此信息:

[[UIApplication sharedApplication] statusBarOrientation]

和Makros:

UIInterfaceOrientationIsLandscape
UIInterfaceOrientationIsPortrait

你不必使用:

OLM_LandscapeLeft // might have a computation bug