2017-10-22 14 views
1

これは重複した質問かもしれませんが、すでに存在している質問には解決策がないので、私は再び賞金の問題を開始するように再度求めています。ここでカスタムボタンはAVPlayer iOS 11では動作しませんが、iOS 11の下では完全に機能していますか?

はiOSの11の下に働いている私のコードです:

AVPlayer *player = [AVPlayer playerWithURL:videoURL]; 

// create a player view controller 
avcontroller = [[AVPlayerViewController alloc]init]; 
avcontroller.player = player; 
[player play]; 


NSNotificationCenter *noteCenter = [NSNotificationCenter defaultCenter]; 
[noteCenter addObserverForName:AVPlayerItemDidPlayToEndTimeNotification 
         object:nil 
         queue:nil 
        usingBlock:^(NSNotification *note) { 

         NSLog(@"Video end"); 
         self.avcontroller.player = nil; 
         [self.avcontroller.view removeFromSuperview]; 
         [self.view addSubview:delegate.tabViewControllerObj.tabBarController.view]; 
        }]; 

_skip =[UIButton buttonWithType:UIButtonTypeCustom]; 
[_skip addTarget:self action:@selector(btnSkipTapped) 
forControlEvents:UIControlEventTouchUpInside]; 
[_skip setTitle:@"Skip" forState:UIControlStateNormal]; 
_skip.layer.borderWidth = 2.0f; 
_skip.layer.cornerRadius = 12; 
_skip.clipsToBounds = YES; 
_skip.layer.borderColor = [UIColor whiteColor].CGColor; 

// show the view controller 
[self addChildViewController:avcontroller]; 
[avcontroller.view addSubview:_skip]; 
[avcontroller.view bringSubviewToFront:_skip]; 
[self.view addSubview:avcontroller.view]; 
avcontroller.view.frame = self.view.frame; 

} 

-(void)viewDidLayoutSubviews{ 
    [super viewDidLayoutSubviews]; 

_skip.frame = CGRectMake((self.view.frame.size.width-140),(self.view.frame.size.height-150),100.0,35.0); 
} 

そしてここでは、ボタンタップ機能である:

- (IBAction)btnSkipTapped{ 

NSLog(@"Skip button clicked"); 
self.avcontroller.player = nil; 
[self.avcontroller.view removeFromSuperview]; 
[self.view addSubview:delegate.tabViewControllerObj.tabBarController.view]; 
} 

このコードは、ボタンをタップすると完全にはなく、ボタンが表示されます、それはなかったのbtnSkipTapped関数を呼び出します。 ご協力いただければ幸いです!

答えて

3

@DeepShah avcontroller.viewにスキップボタンを追加しました。ディスプレイは適切ですが、それをクリックすることはできません。AVPlayerViewControllerContentViewはそのスキップボタンをカバーするためです。

は、画像の下に参照してください。

image

はそうあなたがself.viewとその作品にスキップボタンを追加する必要があります。

[self.view addSubview:_skip]; 
[self.view bringSubviewToFront:_skip]; 
+0

ありがとうございました。それは完璧に働いた。 –

+0

私は同じ問題に直面します。私の場合、私はAVPlayerViewControllerを提示し、カスタムボタンを追加します.AボタンはAVPlayerViewControllerに表示されますが、ボタンアクションをトリガーすることはできません。上記のことを試みましたが、うまくいきませんでした。 UIButton self.playerViewController.viewとして.addSubview(BTN) self.playerViewController.view .bringSubview(toFront:self.castWrapperView):唯一のiOS 11. のlet BTN = UIButton(.customタイプ)で発生した? 自己.present(self.playerViewController、animated:false、completion:nil) @Niravこの問題に関する考え方はありますか? – PramukaD

+0

が 'self.view'または' self.playerViewController.view'に追加されましたか? –

関連する問題