当系统说它不是风景时,iPhone 5屏幕的横向比例

时间:2015-12-02 18:02:55

标签: ios iphone swift

我有一个应用程序,当它从横向更改为纵向时,需要更改它的尺寸,反之亦然。我已经注册了这样的通知:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil);

我收到通知,但有一个方案失败了。当我拿起手机时,将其切换为横向,然后将其平放在桌面上而不倾斜它,我收到通知,它已经改变了景观,但我得到的尺寸仍然是旧尺寸。这就是我的检查方式:

let isLandscape = UIDeviceOrientationIsLandscape(currentDevice.orientation);

这是一个日志:

纵向开始:

Landscape: false
Bounds (0.0, 0.0, 320.0, 568.0)

将手机放在旁边:

Landscape: true
Bounds (0.0, 0.0, 568.0, 320.0)

平躺在桌子上:

Landscape: false
Bounds (0.0, 0.0, 568.0, 320.0)

我是新手,所以也许我使用了错误的API。

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的错误。我假设只有两个方向,但我查看了UIDeviceOrientation枚举,有几个:

case Portrait // Device oriented vertically, home button on the bottom
case PortraitUpsideDown // Device oriented vertically, home button on the top
case LandscapeLeft // Device oriented horizontally, home button on the right
case LandscapeRight // Device oriented horizontally, home button on the left
case FaceUp // Device oriented flat, face up
case FaceDown // Device oriented flat, face down

所以我认为"不是风景意味着肖像"不对。