【iOS学习笔记】常用代码

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

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;

1
2
3
     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;

1
2
3
     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事件方法 

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

 


 

 

转载于:https://www.cnblogs.com/pjl0426/p/5018111.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值