我想知道設備的當前方向。當前設備不工作的UIInterfaceOrientation
if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
{
}
但這doent工作
我想知道設備的當前方向。當前設備不工作的UIInterfaceOrientation
if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
{
}
但這doent工作
我得到了它,
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) {
}
這項工作非常完美。
您應該使設備方位像這樣的通知:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
,那麼你可以查詢當前的方向
編輯:
來自do CS: 「這個屬性的值,除非取向通知已通過調用beginGeneratingDeviceOrientationNotifications
啓用總是返回0」(其中0爲UIDeviceOrientationUnknown
)
不需要開始生成通知,只需重寫' - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration'和/或' - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation'方法 – sonxurxo
的
[[UIDevice currentDevice] orientation]
將返回一個
UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
常量。如果你只是想檢查其「垂直」或「水平」,無論上下或左右,只檢查:
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) {...}
如果要檢測方向的變化,覆蓋
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}
或
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {...}
方法。
這對你有幫助嗎?
接受的答案中提到的解決方案適用於我。
雖然我的語句1沒有得到與下面的邏輯
myOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(myOrientation == UIInterfaceOrientationPortrait) ||
(myOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
// stmt 1;
}
執行
這一個對我的作品的權利
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
{
// stmt 1;
}
你或許應該比較'UIDeviceOrientationPortrait',因爲你是在看_device_方向而不是_interface_方向。話雖如此,看着文檔,你會看到'UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait'。所以這不會改變任何事情,只是使它更清晰。 –
儘管文檔中說beginGeneratingDeviceOrientationNotifications必須被調用,但我發現[[UIDevice currentDevice]方向]返回非零值。不知道爲什麼。也許是因爲我在做startAccelerometerUpdatesToQueue:withHandler :(有人知道爲什麼嗎?) – Jeff