最近做的一个项目,里面有这样一个需求,在一个页面,用一个UIImageView不停的刷新显示图片,图片可能会重复显示:图片是从服务器下载下来的data流,data转UIimage系统的方法: UIImage *image = [UIImage imageWithData:data]; 这个方法并不好,用过 SDWebImage 的都知道为什么不好,既然图片是服务器下载,而且图片可以重复,那就用 SDWebImage 做缓存,下次请求可以用图片唯一标示先从本地拿,如果有,就不用再请求,直接返回就行…
在iOS中, 界面刷新在主线程中进行, 这导致NSURLSession远程下载图片使用UIImageView直接设置Image并不能及时刷新界面. 下面的代码演示了如何使用 performSelectorOnMainThread: withObject:  waitUntilDone: 方法来及时刷新图片 1. 创建iOS空应用程序(Empty Application). 2. 加入一个控制器类. 在YYAppDelegate.m中修改 #import "MainViewController.h…
本文转发至: http://blog.csdn.net/uxyheaven/article/details/7909373 http://www.cocoachina.com/ios/20141212/10622.html SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征.使用示范的代码: UITableV…
iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒.它包含三个文件夹: Documents: 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录,如用户信息等永久性文件; Library: 它包含两个文件夹 caches 和 preferences Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,如图片.视频缓存: Library/Prefer…
在开发移动应用的时候比如Android,IOS,因为手机流量.网速.内存等这些因素,当我们的移动应用是针对互联网,并要频繁访问网络的话,对网络优化这块就显得尤为重要了. 比如某个应用要经常显示网络图片,就不能每次显示图片都去网络上下载,那太耗费时间也太耗费流量,这时就要对网络图片进行缓存了,以下是我对IOS网络图片缓存的一些见解,有不足之处,欢迎大家指出来,一起探讨. 处理网络图片缓存步骤: 1.根据图片URL查找内存是否有这张图片,有则返回图片,没有则进入第二步 2.查找物理存储是否有这张图片…
用到这个的业务场景是这样的: a页面点击新建列表按钮进入到新建的页面b,填写b页面并点击b页面确认添加按钮,把这些数据带到a页面,填充到列表(数组),可以添加多条, 点击这条的时候进入到编辑页面,确认修改之后,回退到a页面,a页面需要更新这条数据 实现这个功能的时候,由于是路由页面之间的跳转,首先想到的方案有几个:1. 用sessionStorage本地存储:2. 用路由参数带过去:3. 用兄弟组件传值 由于是添加完之后如果按回退是需要退出整个页面,如果用路由跳转,会出现回退到编辑页面了,所以这…
iOS 通用缓存:HanekeSwift Haneke 是个采用 Swift 编写的轻量级 iOS 通用缓存.示例: 初始化一个数据缓存: let cache = Cache<NSData>("my-files") Haneke 同时包括一个零配置的图片缓存,可以自动缩放. 示例: imageView.hnk_setImageFromURL(url) 它的设计是超简单易用.这里是你如何初始化一个JSON缓存和从URL获取JSON对象: let cache = Cache&l…
(1)运行中的现象: 在iOS开发中,会遇到:同一NSURL被多次请求,会造成用户的流量浪费,程序的响应速度不够快.比如说,从服务器上请求一张图片,请求100次,下载的结果都是一样的. (2)解决方法: 为了提高程序响应速度,可以考虑缓存.内存缓存和硬盘缓存. 内存缓存其实是沙盒缓存. <2>缓存在客户端和服务器通信的过程 (2-1)客户端第一次向服务器请求数据: 第一次请求数据数据时,检测内存缓存中是否有数据,如果内存缓存中没有数据,就判断硬盘缓存中是否有数据,如果硬盘缓存都没有数据,就去服…
一:NSCash的基本了解 #import "ViewController.h" @interface ViewController ()<NSCacheDelegate> /** 注释 */ @property (nonatomic, strong) NSCache *cache; @end @implementation ViewController -(NSCache *)cache { if (_cache == nil) { _cache = [[NSCache…
1. 什么是cache cache就是缓存的意思. 计算机上的cache就是高速缓存,计算机组成课程里的定义是,存在于主存和CPU之间,主要用于解决CPU处理数据的速度远远大于读取主存数据的速度. 手机上也有cache,主要作用是保存一些软件生成的临时文件,避免每次都要重复地向服务器请求相同的数据,既浪费用户流量,也影响APP响应速度. 2. 缓存的实现 手机缓存一般有两种方式,内存缓存和硬盘缓存. 客户端每次请求数据,首先检测内存缓存是否有数据,若没有则检测硬盘,还是没有才请求服务器. 请求数…
Web image(网络图像) 该库提供了一个支持来自Web的远程图像的UIImageView类别 它提供了: 添加网络图像和缓存管理到Cocoa Touch framework的UIImageView类别 异步图像下载 An asynchronous memory + disk image caching with automatic cache expiration handling 支持GIF动画 支持WebP格式 后台图像解压 保证相同的url不会下载多次 保证伪造的URL不会尝试一遍又…
SDWebImage.WebView产生的缓存 1.计算缓存大小 //SDWebImage缓存大小  UILabel *cleanDetailText = [[UILabel alloc]init]; unsigned long iLength = [[SDImageCache sharedImageCache]getSize]/1024.0; if(iLength > 1024.0) { iLength = iLength/1024.0; NSString *sLength = [NSStri…
    - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] fileSize]; } return 0; } //遍历文件夹获得文件…
1.UILabel 1> 概述 UILabel (标签): 是显示文本的控件.在App中 UILabel 是出现频率最高的控件 UILabel 是 UIView 子类,作为子类一般是为了扩充父类的功能, UILabel 扩展了文字显示的功能, UILabel 是能显示文字的视图. 2> 创建UILabel的步骤 创建UILabel与创建UIView的步骤很相似. 开辟空间并初始化(如果本类有初始化方法,则使用自己的初 始化方法;否则使用父类的) 设置文本控制相关的属性 添加到父视图上,用以显示…
- (void)getSize2 { // 图片缓存 NSUInteger size = [SDImageCache sharedImageCache].getSize; //  NSLog(@"%zd %@", size, NSTemporaryDirectory()); NSFileManager *manager = [NSFileManager defaultManager]; // 文件夹 NSString *caches = [NSSearchPathForDirector…
http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000   介绍: 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看下面的“使用方法”. 2014.08.30代码更新: 修复了“…
github: https://github.com/hellovoidworld/HVWWeibo   A.下拉刷新微博 1.需求 在“首页”界面,下拉到一定距离的时候刷新微博数据 刷新数据的时候使用控件提示 新数据要加在旧数据的前面 刷新完毕隐藏刷新控件 刷新数据完毕,导航栏下方弹出一个提示框,提示刷新微博数量   2.思路 直接使用系统自带的UIRefreshControl就可以做出动画效果 使用微博的获取微博API参数since_id可以控制加载的微博从哪个id开始 使用可变数组来拼接新…
为练手写了一个小的上拉载入很多其它下拉刷新的小的Dome . 没有太多的技术含量,仅仅是作为新手的启示用.是上一篇下拉载入的扩展.先看一下那个再看这个就easy非常多. Dome下载:http://download.csdn.net/detail/u010123208/8062715 先来梳理一下: 上拉家在很多其它就是上拉之后在底部现实一个视图,用来提示用户上拉载入很多其它,假设用户上拉就出发事件.进行载入并在试图中给予提示,同一时候后台载入数据,将加入的数据加入数据数组,最后又一次导入列表:…
有时候在设置UIImageView的大小时候需要根据UIimage的长宽比来自动设置,不让图片原比例失真. 如果是从本地获取到的图片,[UIImage imageNamed:@""]; 这样就可以拿到image了,从而获取到image的size.但大多数时候我们都是网络请求拿到的图片, 我们需要 NSData *data = [NSData dataWithContentsOfURL:url]; image = [UIImage imageWithData:data]; 这样来得到im…
UIImageView是我们做iOS开发用的非常多的一个控件,IOS中的各种图片,包括头像,有的背景图片等基本都要用到这个控件. 1.常用的属性以及方法 <span style="font-size:14px;">// 初始化图片 - (id)initWithImage:(UIImage *)image; // 初始化带高亮的图片 - (id)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlig…
问题描述 最近将公司官网样式进行了调整,部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常. 问题分析 研究之后发现可能的原因有 css文件过大,加载缓慢 本地缓存问题,虽然服务器修改了css文件,但是浏览器仍然使用本地缓存的css, 需要用户多刷新一次才能正常展示显然是很不合理的,那么怎么样解决更新后让浏览器请求新的css或js文件呢? 解决办法 方法1 更新文件后更改css/js文件名. 其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的.在你更新了网站的css文件内容后,…
前言:   最近面试时,问到了限定并发数的视频下载,当时回答的时通过GCD_barrier 处理,回来想想也可以通过NSCache处理,所以顺便复习一下,这个知识点. 一,关于NSCache说明 说明文档: @interface NSCache : NSObject Description A mutable collection you use to temporarily store transient key-value pairs that are subject to eviction…
原文:http://blog.csdn.net/csdn100861/article/details/50684438 问题描述 部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常. 问题分析 可能的原因有 css文件过大,加载缓慢 本地缓存问题,虽然服务器修改了css文件,但是浏览器仍然使用本地缓存的css, 需要用户多刷新一次才能正常展示显然是很不合理的,那么怎么样解决更新后让浏览器请求新的css或js文件呢? 解决办法 方法1 更新文件后更改css/js文件名. 其实解决这个问…
iOS的内存管理始终是开发者面临的大问题,内存占用过大时,很容易会被系统kill掉,开发者需要尽可能的优化内存占用问题. 现在的App界面做的越来越精致,里面集成了大量的图片,笔者首先想到的就是如何减少这些图片占用的内存. 通常我们加载图片使用以下方式: 1.imageNamed: 图片加载完成后,系统会把它缓存在内存中,当第二次加载时,直接就从内存中读取了,好处是加载速度过,缺点就是会一直占用系统内存,当我们的图片需要反复加载时,这种方式是一种不错的选择: 2.imageWithContent…
我用jquery ui 弹出一个购物车的对话,通过AJAX加载的数据.发现购物车被缓存,一直看到是旧数据.为了刷新购物车更新,我必须去加一个刷新按钮,点击后更新购物车页面.有没有一种方法来自动刷新加载到对话框的内容? 我在加载使用下面的代码内容: function loadCart() {    $('#dialog').load('...url to cart page...'); $('#dialog').dialog({  autoOpen: false,  width: 768,  bg…
在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了. 代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAt…
在手机应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制,前面一篇文章介绍了iOS设备的内存缓存,这篇文章将设计一个本地缓存的机制. 功能需求 这个缓存机制满足下面这些功能. 1.可以将数据缓存到本地磁盘. 2.可以判断一个资源是否已经被缓存.如果已经被缓存,在请求相同的资源,先到本地磁盘搜索. 3.可以判断文件缓存什么时候过期.这里为了简单起见这里,我们在请求url资源的时候,给每次请求的文件设定一个过期的时间. 4.可以实现:如果文件已经被…
iOS的网络引擎自带缓存机制: 网络请求在经过网络引擎时有过处理(添加了字段),所以用api的网络请求无法获取缓存. [NSURLCache sharedURLCache]…
-------->不说废话 在返回页面实现下面方法: - (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController*)viewController animated:(BOOL)animated: 注意:需要遵循UINavigationControllerDelegate,并使本类成为代理 用法: - (void)navigat…
内置刷新 内置刷新是苹果IOS6以后才推出的一个API,主要是针对TableViewController增加了一个属性,refreshControl,所以如果想用这个内置下拉刷新的话,最好给你的TableView指定一个专门的视图控制器了. 使用的话,我们需要给refreshControl指定一个UIRefreshControl对象.跟进到头文件中看到 三个属性,算上初始化三个方法,并不难,然后配置refreshControl 附上代码 /******内置刷新的常用属性设置******/ UIR…