0

私のアプリでは、次のコードを使用して YouTube 動画を埋め込んでいます。

- (void)playVideo:(NSString *)urlString frame:  (CGRect)frame
{

NSString *embedHTML = @"<body style=\"margin:0\"> <iframe height=\"110\" width=\"110\" src=\"http://www.youtube.com/embed/video id\" frameborder=\"0\"/></iframe> </body> ";


NSString *html = [NSString stringWithFormat:embedHTML, urlString, frame.size.width, frame.size.height];
UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];


[videoView loadHTMLString:html baseURL:nil];
[self.scrollView addSubview:videoView];
[videoView release];
NSLog(@"%@",html);

}

そしてviewWillAppearメソッドで:

-(void) viewWillAppear:(BOOL)animated {

[self playVideo:@"http://www.youtube.com/watch?video id" frame:CGRectMake(5, 20, 110, 110)];

}

しかし、ビューが読み込まれると、ビデオが表示されるまでに時間がかかり、ユーザーは何も起こらないと感じる可能性があるため、これらのフレーム内にアクティビティ インジケーターを表示したいと考えています。それを手伝ってくれませんか?ありがとう。

4

2 に答える 2

0

videoViewスクロール ビューに" " を追加しているのがわかりますか? UIActivityIndicator同様の方法で、" " ビューをサブビューとして videoView または scrollView に追加してみませんか?

そのアクティビティ インジケーターへのハンドル/アウトレットを保持し、ビデオの再生が開始されたら削除してください。

于 2013-01-12T18:03:36.567 に答える
0

UIWebviewより良いパフォーマンスを使用するには、このように使用します

ViewController.hファイル内

UIWebViewDelegateデリゲートとしての最初の SET

@interface ViewController : UIViewController<UIWebViewDelegate> {

        UIWebView *videoView;
}

overrideこれらすべてのメソッドをViewController.mファイルに入れるだけです

– webView:shouldStartLoadWithRequest:navigationType:
– webViewDidStartLoad:
– webViewDidFinishLoad:
– webView:didFailLoadWithError:

あなたのコードを書いてください アクティビティインジケーターコードを表示してください それに応じてあなたのインジケーターを表示してください

詳細については、このリンクを参照してください

編集:

  1. – webViewDidStartLoad:メソッド内にActivityindicatorのアニメーションを表示・起動するには

  2. – webViewDidFinishLoad:メソッド内の Activityindicator のアニメーションを停止

  3. Set を忘れないでくださいDelegate

于 2013-01-12T18:06:57.033 に答える