簡體   English   中英

在設備iOS旋轉時發送動作

[英]Send Action on rotation of device iOS

這是我要實現的目標,它是發送有關設備旋轉的操作...

關鍵是我有一個360播放器,我希望僅在設備處於橫向狀態時才能開始播放視頻。 如果是縱向模式,我想顯示一條消息,說“橫向旋轉設備以開始播放”,當用戶旋轉設備時,將播放視頻。

下面是我到目前為止的代碼:

- (IBAction)test:(id)sender forEvent:(UIEvent *)event {

if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft || [[UIDevice currentDevice] orientation ]== UIDeviceOrientationLandscapeRight)
{
        NSString *path = [[NSBundle mainBundle] pathForResource:@"demo1" ofType:@"mp4"];
        NSURL *url = [NSURL fileURLWithPath:path];

        Video360ViewController *videoController = [[Video360ViewController alloc] initWithNibName:@"HTY360PlayerVC" bundle:nil url:url];

        [videoController VRMode:true];

        if (![[self presentedViewController] isBeingDismissed]) {
            [self presentViewController:videoController animated:YES completion:nil];
        }
}
if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown )
{
    NSLog(@"UIDeviceOrientationPortrait");
}

}

此代碼的問題是,它僅在Sent Event中的TouchUp Inside上觸發。 無論如何要開始旋轉動作?

感謝你的幫助 !

編輯 - -

還嘗試了以下內容:

- (IBAction)test:(id)sender forEvent:(UIEvent *)event {
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft || [[UIDevice currentDevice] orientation ]== UIDeviceOrientationLandscapeRight)
{
        NSString *path = [[NSBundle mainBundle] pathForResource:@"demo1" ofType:@"mp4"];
        NSURL *url = [NSURL fileURLWithPath:path];

        Video360ViewController *videoController = [[Video360ViewController alloc] initWithNibName:@"HTY360PlayerVC" bundle:nil url:url];

        [videoController VRMode:true];

        if (![[self presentedViewController] isBeingDismissed]) {
            [self presentViewController:videoController animated:YES completion:nil];
        }
}
if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown )
{
    NSLog(@"UIDeviceOrientationPortrait");
}

}

你有沒有嘗試過

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

嘗試將您的代碼放入其中:

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{

}

並在UIViewController編寫此方法。 旋轉設備(實際上是接口)時將調用此方法。 如果要在旋轉接口之前執行某些操作,請使用willRotateFromInterfaceOrientation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM