当前位置:首页>编程日记>正文

第三方框架的使用

本站寻求有缘人接手,详细了解请联系站长QQ1493399855

框架的使用

1.AFNetworking :是用来请求网络的

  AFHTTPRequestOperationManager *mangr = [AFHTTPRequestOperationManager manager];

    NSMutableDictionary *paramas = [NSMutableDictionary dictionary];

    paramas[@"access_token"] = [MDAccountTool account].access_token;

    //发送Get 请求

    [mangr GET:<#(NSString *)#> parameters:<#(id)#> success:^(AFHTTPRequestOperation *operation, id responseObject) {     

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    }];

********************************************************************************************************************

2.MBProgressHUD2:这是缓冲时的涡轮效果

- (void)webViewDidStartLoad:(UIWebView *)webView

{

//旋转的效果

    [MBProgressHUD showMessage:@"正在加载..."];

}

//web加载完成的时候调用

- (void)webViewDidFinishLoad:(UIWebView *)webView

{//取消旋转

    [MBProgressHUD hideHUD];

 

}

*********************************************************************************************************

3.MJExtension:这是字典属性转换成模型的时候调用,模型转字典,还有归档和解档 

        NSArray *statusArray = responseObject[@"statuses"];

                //字典数组转MDStatus模型数组

        self.statuses = (NSMutableArray *)[MDStatus objectArrayWithKeyValuesArray:statusArray];

             //刷新表格数据

        [self.tableView reloadData];

        //等价与上面的一行代码

//        for (NSDictionary *dict in statusArray) {

//            //字典转MDStatus,数组中字典是转不了模型

//            MDStatus *sta = [MDStatus objectWithKeyValues:dict];

//            if (sta.pic_urls.count) {

//                NSLog(@"%@",sta.pic_urls[0]);

//            }

//            [self.statuses addObject:sta];

//            

//        }

4.SDWebImage:加载网络图片的时候调用

SDWebImage 的好处:

1.属于异步请求,不会阻塞主线程(界面)

2.自动创建缓存

3.可以让图片循环利用

注意点:因为自动创建缓存,很容易造成内存的警告

解决的方法:

-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application

   //停止所有的图片下载

    [[SDWebImageManager sharedManagercancelAll];

    

    //清空所有缓存

    [[SDWebImageManager sharedManager].imageCache clearMemory];

 

 

 //设置图片

 

    [cell.imageView sd_setImageWithURL:status.user.profile_image_url placeholderImage:[UIImage imageNamed:@"timeline_image_placeholder"]];

归档和解档

//底层就是把当前的类的属性,一一归档和解档

MJCodingImplementation;

***************************************************************************************

5.MJRefresh:下拉刷新的效果

//自动下拉刷新

    [self.tableView headerBeginRefreshing];

 

6.NSDate+MJ 判断时间与当前时间的比较

//设置时间格式(由于使用点语法获取数据的,所以要重新设置Get方法)

-(NSString *)created_at

    // Sat Mar 26 16:05:03 +0800 2016 微博给我们的时间格式

    //1.先要把字符串转化成 NSDate

    //转换 EEE MMM d HH:mm:ss Z yyyy

    //日期格式转换

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    formatter.dateFormat = @"EEE MMM d HH:mm:ss Z yyyy “;

//记得格式本地化,是系统知道时间是那个国家的语言(一定要设置,不然不会显示出时间)

 

    formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_us"];

    NSDate *creat_time = [formatter dateFromString:_created_at];

    if ([creat_time isThisYear]) {//今年

        //两天前

        if ([creat_time isToday]) {//今天

            NSDateComponents *cmp = [creat_time deltaWithNow];

            if (cmp.hour >= 1) {

                return [NSString stringWithFormat:@"%ld小时前",cmp.hour];

            }else if(cmp.minute > 1)

            {

                return [NSString stringWithFormat:@"%ld分钟前",cmp.minute];

            }else

                return @"刚刚";

            }

            

        }else if ([creat_time isYesterday])

        {//昨天

            formatter.dateFormat = @"昨天 HH:mm";

            return [formatter stringFromDate:creat_time];

        

        }else

        {//前天

            formatter.dateFormat = @"MM-dd HH:mm";

        }

   

    }else{//不是今年

         formatter.dateFormat = @"yyyy-MM-dd HH:mm";

        return [formatter stringFromDate:creat_time];

    }

    return _created_at;

MJPhotoBrowser:图片浏览器

//添加九个配图控件(要把传过来,利用属性传值)

-(void)setUpAllChildVC

    //九宫格中

    for (int i = 0; i < 9 ; i++) {

        UIImageView *imageView = [UIImageView alloc].init;

        /**

         * UIViewContentModeScaleToFill :将整个图片压缩到适合控件的大小

         UIViewContentModeScaleAspectFit :按比例缩放到不超出边框

         UIViewContentModeScaleAspectFill:按比例缩放到到一边(宽或高)不超出边界合适就不在改变

        UIViewContentModeCenterview 与图片的中心点对齐,不会居中

         *

         */

        //添加点图片手势按钮

        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];

        [imageView addGestureRecognizer:tap];

        imageView.tag = i;

        //当使用UIImageView的时候,记得设置图片的交互

        imageView.userInteractionEnabled = YES;

        imageView.contentMode = UIViewContentModeScaleAspectFill;

        //把超出边框的图片去掉

        imageView.clipsToBounds = YES;

        [self addSubview:imageView];

//添加点图片手势按钮

-(void)tapGesture:(UITapGestureRecognizer *)tap

     //在手势的图片添加Tag,这可以知道获取的是第几张图片(通过手势可以获取点击的图片)

    UIImageView *imageV = (UIImageView *) tap.view;

    //点击图片的时候调用

    //创建图片浏览器

    int i = 0;

    NSMutableArray *array = [NSMutableArray array];

    for (MDPhotos *photos in _pic_urls) {

        //MDphotos 转换成 MJphoto

        //MJPhoto.h 的文件中 ,要实现的属性有

        //1.@property (nonatomic, strong) NSURL *url;

        //2.@property (nonatomic, strong) UIImageView *srcImageView; // 来源view(你点击那个图片)

        //3.@property (nonatomic, assign) int index; // 索引

        MJPhoto *mjPhotos = [[MJPhoto alloc] init];

        //图片不清晰时,可以键连接的改一下

        NSString *urlString = photos.thumbnail_pic.absoluteString;

        urlString = [urlString stringByReplacingOccurrencesOfString:@"thumbnail" withString:@"bmiddle"];

        mjPhotos.url = [NSURL URLWithString:urlString];

//        NSLog(@"%@",photos.thumbnail_pic);

        mjPhotos.index = i ;

        mjPhotos.srcImageView = imageV;

        [array addObject:mjPhotos];

        i ++ ;

    MJPhotoBrowser *browser = [[MJPhotoBrowser alloc] init];

    /*MJ头文件提示要实现的,以后使用框架的时候,要看头文件

     // 所有的图片对象(MJPhoto)

     @property (nonatomic, strong) NSArray *photos;

     // 当前展示的图片索引

     @property (nonatomic, assign) NSUInteger currentPhotoIndex;

     */

    browser.photos = array;//所有图片对象

    browser.currentPhotoIndex = imageV.tag ;

    //以后看到要显示到主窗口的 可以 考虑框架是否有 show(看框架头文件)

    [browser show];


http://www.coolblog.cn/news/96247df641b2e21d.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • Mac原生Terminal快速登录ssh
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • mysql commit 机制_1024MySQL事物提交机制
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • 2019-9
  • jquery 使用小技巧
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Django View(视图系统)
  • 【设计模式】 模式PK:策略模式VS状态模式
  • JS实现-页面数据无限加载
  • CSS小技巧——CSS滚动条美化
  • 最新DOS大全
  • 阿里巴巴分布式服务框架 Dubbo
  • 阿里大鱼.net core 发送短信
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 程序员入错行怎么办?
  • Arm芯片的新革命在缓缓上演
  • 两张超级大表join优化
  • 第九天函数
  • 通过Spark进行ALS离线和Stream实时推荐
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • 《看透springmvc源码分析与实践》读书笔记一
  • python3 错误 Max retries exceeded with url 解决方法
  • nagios自写插件—check_file
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • 行为模式之Template Method模式