Я сделал учебник для этого и где он работает с изменениями ориентации интерфейса.
Вот файл реализации.Просто скопируйте вставить в свой контроллер, введите свой URL и попробуйте этот код
#import "TestVideoViewController.h"
#import "UICommonUtils.h"
@implementation TestVideoViewController
@synthesize TestVideoView;
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//sleep(10.0);
[busyLoadingView hide:YES];
//bShow = NO;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
//sleep(10.0);
[busyLoadingView hide:YES];
//bShow = NO;
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//bShow = YES;
//[busyLoadingView showWhileExecuting:@selector(showCursor:) onTarget:self withObject:nil animated:YES];
//[busyLoadingView show:YES];
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[busyLoadingView show:YES];
}
-(void)viewWillDisappear:(BOOL)animated
{
[self embedVideo1:@"PASS HERE URL1" andVideo2:@"PASS HERE URL2" frame:self.view.frame];
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rectFrame = [UIScreen mainScreen].applicationFrame;
self.view.frame = rectFrame;
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.view.autoresizesSubviews = YES;
//TestVideoView.scalesPageToFit = YES;
//TestVideoView.backgroundColor = [UIColor clearColor];
busyLoadingView = [[MBProgressHUD alloc] initWithView:self.view];
// Add HUD to screen
[self.view addSubview:busyLoadingView];
busyLoadingView.labelText = @"Loading...";
[self embedVideo1:@"PASS HERE URL1" andVideo2:@"PASS HERE URL2" frame:self.view.frame];
//self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
//self.view.autoresizesSubviews = YES;
}
- (void)embedVideo1:(NSString*)url1 andVideo2:(NSString*)url2 frame:(CGRect)frame {
float videoWidth = 748.0;
float videoHeight = 341.0;
//int marginLeft = 10;
//int marginTop = 10;
if ([UICommonUtils isiPad]){
videoWidth = 748.0;
videoHeight = 341.0;
//marginLeft = (int)(frame.size.width - videoWidth) /2;
//marginTop = 10;
} else {
videoWidth = 300.0;
videoHeight = 160.0;
//marginLeft = 10;
//marginTop = 10;
}
NSString* embedHTML = @" \
<html><head> \
<style type=\"text/css\"> \
.style11 { \
font-family:Arial,Helvetica,sans-serif; \
font-weight:bold; \
font-size:16; \
} \
.style12 { \
width: \"%0.0f\"; \
height=\"%0.0f\" \
align = center; \
} \
.style21 { \
font-family:Arial,Helvetica,sans-serif; \
font-weight:bold; \
font-size:16; \
} \
.style22 { \
width: \"%0.0f\"; \
height=\"%0.0f\" \
align = center; \
} \
body {\
background-color: transparent; \
color: black; \
} \
</style> \
</head><body> \
<table> \
<tr><td><span class=\"style11\">1) Collecting and Editing Leads</span></td></tr> \
<tr><td height=20></td></tr> \
<tr><td class=\"style12\"> \
<embed id=\"yt1\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"%0.0f\" height=\"%0.0f\"> \
</embed> \
</td></tr> \
<tr height=20></tr> \
<tr><td><span class=\"style21\">2) Accessing Leads Online</span></td></tr> \
<tr><td height=20></td></tr> \
<tr><td class=\"style22\"> \
<embed id=\"yt2\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"%0.0f\" height=\"%0.0f\"> \
</embed> \
</td></tr> \
</table> \
</body></html>";
NSString* html = [NSString stringWithFormat:embedHTML, videoWidth, videoHeight, videoWidth, videoHeight, url1, videoWidth, videoHeight, url2, \
videoWidth, videoHeight];
//NSString* html = [NSString stringWithFormat:embedHTML, videoWidth, videoHeight, videoWidth, videoHeight, url1, videoWidth-20, videoHeight, url2, \
// videoWidth-20, videoHeight];
/*
if(videoView == nil) {
videoView = [[UIWebView alloc] initWithFrame:frame];
[self.view addSubview:videoView];
} */
//[TestVideoView loadHTMLString:html baseURL:nil];
[(UIWebView *)self.view loadHTMLString:html baseURL:nil];
}
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
//return YES;
if([UICommonUtils isiPad]) return YES;
else return NO;
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
//CGRect rectFrame = [UIScreen mainScreen].applicationFrame;
//self.view.frame = rectFrame;
//NSLog([NSString stringWithFormat:@"origin x: %f origin y: %f width: %f height: %f", rectFrame.origin.x,
// rectFrame.origin.y, rectFrame.size.width, rectFrame.size.height]);
//TestVideoView.frame = CGRectMake(rectFrame.origin.x, rectFrame.origin.y, rectFrame.size.height, rectFrame.size.width);
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Вот заголовочный файл для ViewController
#import <UIKit/UIKit.h>
#import "MBProgressHUD.h"
@interface TestVideoViewController : UIViewController<UIWebViewDelegate>{
UIWebView *TestVideoView;
MBProgressHUD *busyLoadingView;
BOOL bShow;
}
@property (nonatomic, retain) IBOutlet UIWebView *TestVideoView;
- (void)embedVideo1:(NSString*)url1 andVideo2:(NSString*)url2 frame:(CGRect)frame;
@end
Надеюсь, это поможет вам.
Если вам требуется дополнительная помощь, пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ: Этот код, скорее всего, не будет работать должным образом на симуляторе, так как на симуляторе нет проигрывателя ударно-волновой флешки