self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];html
- (
void
)webViewDidFinishLoad:(
UIWebView
*)webView
//網頁加載完成的時候調用
web
{
CGRect frame = webView.frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
}
//設置UITableViewCell的選中背景顏色的方法
UIView
*view = [[
UIView
alloc]init];
view.backgroundColor=[
UIColor
redColor];
cell.selectedBackgroundView=view;
//設置UITableViewCell的選中字體顏色的方法:
cell.selectedTextColor=[
UIColor
blackColor];
//默認顯示爲白色
//設置UIColor爲clearColor:
cell.backgroundColor=[
UIColor
clearColor];
//或者,設置顏色透明度爲0:
cell.backgroundColor = [
UIColor
colorWithWhite:0.0f alpha:0.0f];
//1.設置self.tabBarController.tabBar.hidden=YES;
self
.tabBarController.tabBar.hidden=
YES
;
//2.若是在push跳轉時須要隱藏tabBar,設置self.hidesBottomBarWhenPushed=YES;
self
.hidesBottomBarWhenPushed=
YES
;
NextViewController *next=[[NextViewController alloc]init];
[
self
.navigationController pushViewController:next animated:
YES
];
self
.hidesBottomBarWhenPushed=
NO
;
//並在push後設置self.hidesBottomBarWhenPushed=NO;
//這樣back回來的時候,tabBar會恢復正常顯示。
當url地址中包含有中文字符或其餘非標準的url字符時,須要對該url地址進行編碼。NSString提供編碼和解碼方法:網絡
編碼:stringByAddingPercentEscapesUsingEncodingide
1
2
3
|
NSString *urlString=[NSString stringWithFormat:@
"http://www.xxxx.com/?param=%@"
,@
"中文"
];
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
解碼:stringByReplacingPercentEscapesUsingEncoding字體
1
|
NSString *urlStr = [@
"xxx"
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
UIWebview加載數據的三種方法編碼
1>- (void)loadRequest:(NSURLRequest *)request;lua
1
2
3
|
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
|
直接加載url地址。url
2>- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;spa
若是獲取到的是HTML字符串,能夠用這個方法加載。代理
3>- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
1
2
3
|
NSURL *url = [NSURL URLWithString:urlString];
NSData *data=[NSData dataWithContentsOfURL:url];
[self.webView loadData:data MIMEType:@
"text/html"
textEncodingName:@
"GBK"
baseURL:nil];
|
編碼格式有GB23十二、GBK、UTF-8等許多種,當url地址的編碼格式比較特殊時,能夠用這個方法加載。
UIWebview高度自適應
1>實現下面的事件方法能使WebView大小高度自適應:
遵照協議UIWebViewDelegate,設置代理self.webView.delegate=self;
實現- (void)webViewDidFinishLoad:(UIWebView *)webView事件方法
1
2
3
4
5
6
7
|
- (
void
)webViewDidFinishLoad:(UIWebView *)webView
//網頁加載完成的時候調用
{
CGRect frame = webView.frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
}
|
此方法獲得的webView自適應的高度是固定的,若是顯示的HTML的高度超過webView的高度,則以屏幕滾動的方式顯示。
2>若是想讓webView的高度等於顯示的HTML的實際高度,即顯示的HTML有多高,webVIew的高度就有多高,則使用如下方法
1
2
3
4
5
|
- (
void
)webViewDidFinishLoad:(UIWebView *)webView
{
NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:@
"document.body.scrollHeight"
] integerValue];
self.webView.frame=CGRectMake(0, 0, self.view.frame.size.width,height);
}
|
stringByEvaluatingJavaScriptFromString能夠實現UIWebView與JavaScript之間的交互,很方便的操做UIWebview中的頁面元素。
雖然這個方法能使webView高度爲顯示的HTML實際高度,但效果並非太好,當高度超出屏幕時,沒法滾動下拉。
3>若要在webVIew的高度爲實際HTML的高度的狀況下實現滾動,可綜合兩種方法,將webView放置於一個合適大小的scrollView上,便可實現:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
- (
void
)webViewDidFinishLoad:(UIWebView *)webView
{
CGRect frame = webView.frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:
@
"document.body.scrollHeight"
] integerValue];
self.scrollView.contentSize=CGSizeMake(self.view.frame.size.width, height);
[self.scrollView addSubview:self.webView];
}
|
另,如下三段代碼效果基本相同:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"];
[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];
[webView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"];