【iOS學習筆記】經常使用代碼

1,iOS設置UITableView不顯示多餘的空Cell
 

 self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];html

 

2,iOS UIWebView高度大小自適應
 

 - (void)webViewDidFinishLoad:(UIWebView *)webView     //網頁加載完成的時候調用web

     CGRect frame = webView.frame;
     CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
     frame.size = fittingSize;
     webView.frame = frame;
}
 
3,設置UITableViewCell的選中背景顏色和選中字體顏色的方法
 
//設置UITableViewCell的選中背景顏色的方法
 
     UIView *view = [[ UIView alloc]init];
     view.backgroundColor=[ UIColor redColor];
     cell.selectedBackgroundView=view;
 
//設置UITableViewCell的選中字體顏色的方法:
 
cell.selectedTextColor=[ UIColor blackColor]; //默認顯示爲白色
 
4,iOS設置UITableViewCell的背景色透明
 
//設置UIColor爲clearColor:
 
cell.backgroundColor=[ UIColor clearColor];
 
//或者,設置顏色透明度爲0:
 
cell.backgroundColor = [ UIColor colorWithWhite:0.0f alpha:0.0f];
 
5,iOS跳轉界面時隱藏tabBar的方法
//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會恢復正常顯示。
 
6,在iOS開發中,設置tabBarItem.image圖片渲染模式 imageWithRenderingMode屬性爲UIImageRenderingModeAlwaysOriginal ,便可使圖片顯示原始狀態
 
self.tabBarItem.image=[[UIImage imageNamed:images[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 
7,使用[NSURL URLWithString:urlString]生成URL對象時,若是含有中文字符,iOS客戶端不能正確進行網絡請求
 
NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 
8,UIWebview加載數據和高度自適應

當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"];

相關文章
相關標籤/搜索