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


     
  • 相关阅读:
    mybatis中#{}和${}的区别 (二)
    JAVA分布式架构的演变及解决方案
    mybatis中的#和$的区别
    https
    vue3的组件v-model初探1
    前端性能优化
    HTTP请求的完全过程
    http缓存详解,http缓存推荐方案
    vscode-setting备份
    Mac电脑在finder中添加- 右键打开vscode
  • 原文地址:https://www.cnblogs.com/pjl0426/p/5018111.html
Copyright © 2020-2023  润新知