0

我正在开发一个应用程序,该应用程序必须在按下按钮时显示 YouTube 视频。

我正在使用网站上其他地方的代码,在大多数情况下似乎运行良好,但在我的情况下它不是。

- (void)displayVideo{

CGRect frame = CGRectMake(5,55, 200,310);
    NSLog(@"Trying to display video with ID: %@", videoID);
    NSString *embedHTML =[NSString stringWithFormat:@"\
                          <html><head>\
                          <style type=\"text/css\">\
                          body {\
                          background-color: transparent;\
                          color: white;\
                          }\
                          </style>\
                          </head><body style=\"margin:0\">\
                          <iframe height=\"200\" width=\"310\"      src=\"http://www.youtube.com/embed/%@\"></iframe>\
                          </body></html>", videoID];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];

    videoView.backgroundColor = [UIColor redColor];
    [videoView loadHTMLString:embedHTML baseURL:nil];
    [self.view addSubview:videoView];
    [self.view setNeedsDisplay]; }

该方法在按下按钮时运行。NSLog 运行良好,所以我知道代码正在运行 - 视图似乎拒绝更新。

一时兴起,我尝试将代码放入 ViewController 的 viewDidLoad 方法中,令人惊讶的是,它运行良好。

有没有人知道为什么会这样?

4

1 回答 1

1

您可以在 viewDidLoad 中添加子视图,将它们隐藏直到按下按钮,然后在按下按钮时将隐藏属性的值设置为 NO。

也就是说,我看不出为什么视图不会添加到 viewDidLoad 之外的层次结构中的原因。由于这是一个 webView,我认为您可以尝试将其添加到名为- (void)webViewDidFinishLoad:(UIWebView *)aWebView. 不要忘记正确设置委托。

于 2013-07-03T04:23:34.740 回答