標籤:
1,iOS設定UITableView不顯示多餘的空Cell
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
2,iOS UIWebView高度大小自適應
- (void)webViewDidFinishLoad:(UIWebView *)webView //網頁載入完成的時候調用
{
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提供編碼和解碼方法:
編碼:stringByAddingPercentEscapesUsingEncoding
| 123 |
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;
| 123 |
NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:request]; |
直接載入url地址。
2>- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
如果擷取到的是HTML字串,可以用這個方法載入。
3>- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
| 123 |
NSURL *url = [NSURL URLWithString:urlString]; NSData *data=[NSData dataWithContentsOfURL:url]; [self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"GBK" baseURL:nil]; |
編碼格式有GB2312、GBK、UTF-8等許多種,當url地址的編碼格式比較特殊時,可以用這個方法載入。
UIWebview高度自適應
1>實現下面的事件方法能使WebView大小高度自適應:
遵守協議UIWebViewDelegate,設定代理self.webView.delegate=self;
實現- (void)webViewDidFinishLoad:(UIWebView *)webView事件方法
| 1234567 |
- (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的高度就有多高,則使用以下方法
| 12345 |
- (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上,即可實現:
| 1234567891011121314 |
- (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"];
【iOS學習筆記】常用代碼