gpt4 book ai didi

iOS关于Storyboard中UIWebView的问题

转载 作者:行者123 更新时间:2023-12-01 16:46:36 26 4
gpt4 key购买 nike

嘿,所以我一直在对使用 UIWebView 作为 youtube 视频的视频播放器进行大量研究。目前我有一个工作解决方案,它使用 Storyboard 中的 UIWebView 设置来播放 youtube 视频。 UIWebView 将视频显示为预览,单击时视频在标准 IOS 视频播放器中打开,视频播放完毕且用户单击完成后,视频关闭并将控制权返回给应用程序。 Web View 通过 IBOutlet 链接,设置如下所示:

View Controller .h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property(nonatomic, weak) IBOutlet UIWebView *mainWebView;

- (void)embedYouTube:(NSString *)url coorperateVideo:(UIWebView *)videoWebView;

@end

View Controller .m:
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize mainWebView = _mainWebView;

- (void)viewDidLoad
{
[super viewDidLoad];

NSLog(@"Video Frame Width: %f", _mainWebView.frame.size.width);
NSLog(@"Video Frame Height: %f", _mainWebView.frame.size.height);

[self embedYouTube:@"http://www.youtube.com/" coorperateVideo:_mainWebView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (void)embedYouTube:(NSString *)url coorperateVideo:(UIWebView *)videoWebView
{
NSLog(@"Video Frame Width: %f", videoWebView.frame.size.width);
NSLog(@"Video Frame Height: %f", videoWebView.frame.size.height);

NSInteger width = 280;
NSInteger height = 170;

videoWebView.allowsInlineMediaPlayback = YES;
videoWebView.mediaPlaybackRequiresUserAction = NO;
videoWebView.mediaPlaybackAllowsAirPlay = YES;
videoWebView.delegate = self;
videoWebView.scrollView.bounces = NO;
[videoWebView.scrollView setScrollEnabled:NO];

NSString *linkObj = @"http://www.youtube.com/v/1iBIcJFRLBA"; //@"http://www.youtube.com/v/6MaSTM769Gk";

NSString *embedHTML = [NSString stringWithFormat:@"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;color: white;}\\</style>\\</head><body style=\"margin:0\">\\<embed webkit-playsinline id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \\width=\"%d\" height=\"%d\"></embed>\\</body></html>", @"%@", width, height];

NSString *html = [NSString stringWithFormat:embedHTML, linkObj];
[videoWebView loadHTMLString:html baseURL:nil];
}

@end

关于 WebView 的设置和处理视频播放器的行为,我有两个问题。

1) 出于某种原因,即使 UIWebView 是在 Storyboard View Controller 中创建的,Web View 也不会通过框架启动。 viewDidLoad 中的两个 NSLog和 coorperateVideo方法为 withs 和 height 返回 0.0。为什么是这样?我的印象是,在 Storyboard中创建的大多数 View 都是使用尺寸检查器中指定的框架启动的。使用前需要设置网页 View 的框架吗?

2)我的第二个问题与按下视频时调用的视频播放器有关。目前,该应用程序已设置为唯一支持的界面方向是纵向。但是,当我单击视频并且播放器显示时,用户无法横向观看视频。有没有办法设置它,以便只有视频播放器 View 可以支持其他方向?

谢谢您的帮助!

最佳答案

为了回答您的第一个问题,我复制/粘贴了您的代码并进行了尝试。它工作正常。两种方法都显示了 Web View 的框架。如果将 UIWebview 拖放到 Storyboard 中,则高度和宽度会显示在尺寸检查器中。如果您愿意,您可以明确提及它。

关于iOS关于Storyboard中UIWebView的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com