IOS 特定於裝置的開發:處理基本方向

haibo wang發表於2014-12-22

UIDevice類使用內建的orientation屬性獲取裝置的物理方向。IOS裝置支援這個屬性的7個可能的值。

    》UIDeviceOrientationUnknown:方向目前未知。

    》UIDeviceOrientationPortrait:Home鍵在下。

    》UIDeviceOrientationPortraitUpsideDown:Home鍵在上

    》UIDeviceOrientationLandscapeLeft:Home鍵在左邊

    》UIDeviceOrientationLandscapeRight:Home鍵在右邊

    》UIDeviceOrientationFaceUp:裝置正面朝上

    》UIDeviceOrientationFaceDown:裝置正面朝下

IOS 提供了兩個內建巨集,幫組確定裝置方向列舉值是縱向還是橫向的:既UIDeviceOrientationIsPortrait()和UIDeviceOrientationIsLandscape().能夠很方便的擴充套件UIDevice類,提供這些測試作為內建的裝置屬性。

在UIDevice擴充套件類中新增如下程式碼

@property (nonatomic , readonly)BOOL isLandscape;
@property (nonatomic , readonly)BOOL isPortrait;
-(BOOL)isLandscape
{
    return UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation);
}

-(BOOL)isPortrait
{
    return UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation);
}

程式碼也可以直接訂閱裝置重定向通知。為此,可以把beginGeneratingDeviceOrientationNotification傳送給currentDevice單例。然後新增一個觀察者,捕獲隨後發生的UIDeviceOrientationDidChangeNotification更新。如你所期望的,可以通過呼叫UIDeviceOrientationDidChangeNotificationOrientationNotification來完成偵聽。

相關文章