【iOS學習筆記】常用代碼

來源:互聯網
上載者:User

標籤:

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學習筆記】常用代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.