我正在开发一款应用,当按下按钮时,该应用必须显示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方法中,令人惊讶的是,它运行良好。
有没有人对这可能是什么有任何想法?
答案 0 :(得分:1)
您可以在viewDidLoad中添加子视图,将其隐藏到按下按钮,然后在按下按钮时将隐藏属性的值设置为NO。
那说我看不出为什么视图不会被添加到viewDidLoad之外的层次结构中的原因。由于这是一个webView,我认为您可以尝试将其添加到名为- (void)webViewDidFinishLoad:(UIWebView *)aWebView
的委托方法内的视图层次结构中。不要忘记正确设置代理。