#import <UIKit/UIKit.h>
@interface MainViewController :UIViewController<UIWebViewDelegate,UISearchBarDelegate>
{
__weak IBOutletUISearchBar *searchBar;
__weak IBOutletUIWebView *webView;
UIActivityIndicatorView *activityIndicatorView;// 指示indicator
UIView *opaqueView; // 不透明opaque
}
@end
/**
* //2.用webview显示内容,高度自适应
复制代码
//webview显示简介内容
UIWebView * webviewinfomationDetails = [[UIWebView alloc] initWithFrame:GRAPH_SIZE_INTRODUCETEXT];
webviewinfomationDetails.backgroundColor = [UIColor clearColor];
[webviewinfomationDetails loadHTMLString:remark baseURL:nil];
[webviewinfomationDetails setUserInteractionEnabled:NO];
[(UIScrollView *)[[webviewinfomationDetails subviews] objectAtIndex:0] setBounces:NO];
[webviewinfomationDetails setScalesPageToFit:NO]; //yes:根据webview自适应,NO:根据内容自适应
[webviewinfomationDetails setDelegate:self];
[myScrollView addSubview:webviewinfomationDetails];
[webviewinfomationDetails release];
//另一种显示方式
//定义WebView显示内容
webviewinfomationDetails = [[UIWebView alloc] initWithFrame:GRAPH_SIZE_WEBVIEW];
[webviewinfomationDetails setScalesPageToFit:NO]; //大小自适应
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *base = [NSURL fileURLWithPath:path];
[webviewinfomationDetails loadHTMLString:remark baseURL:base];//链接url
[webviewinfomationDetails setUserInteractionEnabled:NO];//设置用户不可修改
[informationDetailsScroll addSubview:webviewinfomationDetails];
webviewinfomationDetails.delegate=self;
[webviewinfomationDetails release];
//webview委托 高度自适应
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
webView.frame = newFrame;
CGSize newsize=CGSizeMake(320, 356+webView.frame.size.height);
myScrollView.contentSize=newsize;
}
*/
#import "MainViewController.h"
@interface MainViewController ()
@end
@implementation MainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view from its nib.
[webView setUserInteractionEnabled:YES];// 是否支持交互;
[webView setDelegate:self];// 委托
[webViewsetOpaque:NO];// opaque为不透明的意思,这里是透明
[webView setScalesPageToFit:YES];// 自动缩放以适应屏幕
// 加载网页的方式
//创建并加载远程网页(也可播放动态图片)
NSURL * url = [NSURLURLWithString:@"http://tieba.baidu.com/p/1872275682"];
[webView loadRequest:[NSURLRequestrequestWithURL:url]];
//加载本地文件资源
// NSURL *url = [NSURL fileURLWithPath:filePath]; //filePath为文件路径
// NSURLRequest *request = [NSURLRequest requestWithURL:url];
// [webView loadRequest:request];
// 下一步 读入一个HTML,直接写入一个HTML代码
// NSString *htmlPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"webapp/loader.html"];//相当于文件地址
// NSString *htmlString = [NSString stringWithContentsOfFile: htmlPath encoding:NSUTF8StringEncoding error:NULL];
// [webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
opaqueView =[[UIViewalloc] initWithFrame:[UIScreenmainScreen].bounds];// opaqueView需要在.h文件中声明作为UIActivityIndicatorView的容器view
activityIndicatorView = [[UIActivityIndicatorViewalloc] initWithFrame:[UIScreenmainScreen].bounds];
[activityIndicatorViewsetCenter:opaqueView.center];
[activityIndicatorViewsetActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
//颜色根据不同的界面自己调整
[opaqueView setBackgroundColor:[UIColorblackColor]];
[opaqueView setAlpha:0.6];
[self.viewaddSubview:opaqueView];
[opaqueView addSubview:activityIndicatorView];
searchBar.delegate =self;
searchBar.placeholder =@"搜索";// 站位字符串
}
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar
{
NSString *query = [self->searchBar.textstringByReplacingOccurrencesOfString:@""withString:@"+"];// 将“”空格替换成“+”
NSURL *url = [NSURLURLWithString:[NSStringstringWithFormat:@"http://www.google.com/search?q=%@",query]];
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
[webView loadRequest:request]; //链接网络地址
}
//当网页视图被指示载入内容时得到通知,返回YES才会开始加载
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"%s",__FUNCTION__);
NSString *requestString = [[request URL] absoluteString]; // URL -> Str
NSArray *components = [requestString componentsSeparatedByString:@":"];//以:隔开
if ([components count] > 1 && [(NSString *)[componentsobjectAtIndex:0] isEqualToString:@"testapp"]) {
if([(NSString *)[componentsobjectAtIndex:1] isEqualToString:@"alert"]) {
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"Alert from Cocoa Touch"message:[components objectAtIndex:2]delegate:selfcancelButtonTitle:nilotherButtonTitles:@"OK",nil];
[alertshow];
}
return NO;
}
return YES;
}
// 当网页视图已经开始加载一个请求之后得到通知
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"%s",__FUNCTION__);
[activityIndicatorViewstartAnimating];
opaqueView.hidden =NO;
}
// 当网页视图结束加载一个请求之后得到通知
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"%s",__FUNCTION__);
[activityIndicatorViewstopAnimating];
opaqueView.hidden = YES; // 隐藏
}