iOS像360滾動(dòng)圓球那樣釋放內(nèi)存,并計(jì)算緩存

#import"CleanViewController.h"

#import"SDImageCache.h"

#import"UIImageView+WebCache.h"

@interfaceCleanViewController()

{

UIImageView*imageV;

floattop;

UILabel*_numLabel;

UIImageView*warterImgeV ;

float_countFileSize;//所有緩存文件的大小(M)

BOOLisClear;

UILabel*percentageLabel;

BOOL_isPercentage;

}

@end

staticfloatW =140;

staticfloatH =140;

staticNSIntegeri =0;

@implementationCleanViewController

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view.

top= [UIScreenmainScreen].bounds.size.height/4.8f;//140;

self.view.backgroundColor= [UIColorcolorWithRed:65/255.fgreen:171/255.fblue:145/255.falpha:1];

//1.創(chuàng)建mainView:

CGRectframe =CGRectMake( ([UIScreenmainScreen].bounds.size.width-W)/2,top,W,H);

UIView*view = [[UIViewalloc]initWithFrame:frame];

//view.backgroundColor = [UIColor redColor];

view.layer.cornerRadius=70;

//view.layer.borderWidth = .13;

view.layer.masksToBounds=YES;

[self.viewaddSubview:view];

//view.backgroundColor = [UIColor colorWithRed:65/255.f green:171/255.f blue:145/255.f alpha:1];

//2.添加外圓環(huán)

CGFloatspace =14;

CGRectframeR =CGRectMake( ([UIScreenmainScreen].bounds.size.width-W)/2-space/2,top-space/2,W+space,H+space);

imageV=[[UIImageViewalloc]initWithFrame:frameR];

imageV.image= [UIImageimageNamed:@"fb_rotation"];

[self.viewaddSubview:imageV];

[NSTimerscheduledTimerWithTimeInterval:.1target:selfselector:@selector(timeActR:)userInfo:imageVrepeats:YES];

//添加圖片水;

warterImgeV= [[UIImageViewalloc]initWithFrame:CGRectMake(0,10,500,250)];

warterImgeV.image= [UIImageimageNamed:@"fb_wave.png"];

//warterImgeV.backgroundColor = [UIColor yellowColor];

[viewaddSubview:warterImgeV];

warterImgeV.transform=CGAffineTransformMakeTranslation(-350,100);

//2.5添加百分比label:percentage百分比

percentageLabel= [[UILabelalloc]initWithFrame:CGRectMake(0,0, view.frame.size.width, view.frame.size.height)];

//percentageLabel.text = @"20.3%";

percentageLabel.text= [NSStringstringWithFormat:@"%.01f%%",arc4random_uniform(20)+0.2f];

percentageLabel.textColor= [UIColorredColor];

percentageLabel.font= [UIFontsystemFontOfSize:36weight:7];

percentageLabel.textAlignment=NSTextAlignmentCenter;

[viewaddSubview:percentageLabel];

//2.6創(chuàng)建百分比label

UILabel*label = [[UILabelalloc]initWithFrame:CGRectMake(0,percentageLabel.frame.size.height/2,percentageLabel.frame.size.width,percentageLabel.frame.size.height/2)];

label.text=@"百分比";

label.font= [UIFontsystemFontOfSize:18weight:4];

label.textAlignment=NSTextAlignmentCenter;

label.textColor= [UIColorredColor];

[percentageLabeladdSubview:label];

//3.添加橫線

//3.添加橫線

UIView*blackView = [[UIViewalloc]initWithFrame:CGRectMake(30,CGRectGetMaxY(view.frame)+50,[UIScreenmainScreen].bounds.size.width-30*2,8)];

blackView.backgroundColor= [UIColorblackColor];

blackView.layer.cornerRadius=4;

blackView.layer.masksToBounds=YES;

[self.viewaddSubview:blackView];

//4.創(chuàng)建label

_numLabel= [[UILabelalloc]initWithFrame:CGRectMake(0,CGRectGetMaxY(blackView.frame)+20,[UIScreenmainScreen].bounds.size.width,55)];

//_numLabel.backgroundColor = [UIColor redColor];

_numLabel.textColor= [UIColorredColor];

_numLabel.text=@"緩存:999933399M";

_numLabel.textAlignment=NSTextAlignmentCenter;

_numLabel.font= [UIFontsystemFontOfSize:32weight:9];

[self.viewaddSubview:_numLabel];

[selfcountCacheFileSize];//設(shè)置文件大小

//5.創(chuàng)建清除按鈕

UIButton*btn = [[UIButtonalloc]initWithFrame:CGRectMake(( [UIScreenmainScreen].bounds.size.width-150)/2,CGRectGetMaxY(_numLabel.frame)+20,150,40)];

btn.backgroundColor= [UIColorcolorWithRed:0green:0blue:0alpha:.2];

[btnsetTitle:@"一鍵清除"forState:UIControlStateNormal];

[btnsetTitleColor:[UIColorredColor]forState:UIControlStateNormal];

[btnsetTitleColor:[UIColorwhiteColor]forState:UIControlStateSelected];

btn.layer.cornerRadius=10;

btn.layer.masksToBounds=YES;

btn.layer.borderColor= [UIColorwhiteColor].CGColor;

btn.layer.borderWidth=.5;

[btnaddTarget:selfaction:@selector(btnAct:)forControlEvents:UIControlEventTouchUpInside];

[btnsetTitle:@"完成/退出"forState:UIControlStateSelected];

[self.viewaddSubview:btn];

}

//按鈕的點(diǎn)擊方法:

-(void)btnAct:(UIButton*)btn{

//1.一鍵清除

if(btn.selected==NO) {

_isPercentage= !_isPercentage;//設(shè)置啟動(dòng)百分比加+

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.1*NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

[UIViewanimateWithDuration:3animations:^{

warterImgeV.transform=CGAffineTransformIdentity;

}completion:^(BOOLfinished) {

//做動(dòng)畫效果:

[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(timeAct:)userInfo:warterImgeVrepeats:YES];

}];

});

// 4稽物、清除所有的緩存文件

//-----導(dǎo)入清除緩存-------

[[SDImageCachesharedImageCache]clearDisk];

isClear=YES;

//[self countCacheFileSize];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3*NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

//清除緩存:

[selfcountCacheFileSize];

});

//2.完成推出

}else{

[selfdismissViewControllerAnimated:NOcompletion:^{

}];

}

btn.selected= !btn.selected;

}

//定時(shí)器切換

-(void)timeAct:(NSTimer*)timer{

//UIImageView *warterImgeV = timer.userInfo;

CGFloatYi =7;

if(i==0) {

//重新設(shè)置frame:

CGRectfloatCont =warterImgeV.frame;

floatCont.origin.x= -CGRectGetWidth(warterImgeV.frame)+W+Yi;

warterImgeV.frame= floatCont;

}

[UIViewanimateWithDuration:3.2animations:^{

warterImgeV.transform=CGAffineTransformMakeTranslation(CGRectGetWidth(warterImgeV.frame)-1.3*W,0);

[timersetFireDate:[NSDatedistantFuture]];

}completion:^(BOOLfinished) {

[timersetFireDate:[NSDatedistantPast]];

warterImgeV.transform=CGAffineTransformIdentity;

}];

}

-(void)timeActR:(NSTimer*)timer{

//2.設(shè)置旋轉(zhuǎn):

imageV.transform=CGAffineTransformRotate(imageV.transform,M_PI/12);

staticCGFloaty =21;

if(_isPercentage){

if(y<91) {

percentageLabel.text= [NSStringstringWithFormat:@"%.01f%%",y];

y=y+4.1;

}

}

}

//------導(dǎo)入清除緩存----------

-(void)countCacheFileSize{

//float _countFileSize; //所有緩存文件的大小(M)

// 1屯伞、找到緩存文件的保存路徑

// NSHomeDirectory()找到應(yīng)用的沙盒路徑

NSString*filePath =[NSHomeDirectory()stringByAppendingPathComponent:@"Library/Caches/com.hackemist.SDWebImageCache.default"];

NSLog(@"->%@",filePath);

// 2、獲取所有的緩存文件

//文件管理對(duì)象類NSFileManager,有它去管理我們的文件目錄

NSFileManager*fileManager = [NSFileManagerdefaultManager];

// subpathsOfDirectoryAtPath,獲取當(dāng)前路徑下所有子文件名

NSArray*fileArray = [fileManagersubpathsOfDirectoryAtPath:filePatherror:nil];

// 3、計(jì)算所有緩存文件的大小

longlongfileSize =0;//所有文件的總字節(jié)數(shù)

for(NSString*fileNameinfileArray) {

//獲得每一個(gè)緩存文件的路徑

NSString*subFilePath = [filePathstringByAppendingPathComponent:fileName];

NSDictionary*attributes = [fileManagerattributesOfItemAtPath:subFilePatherror:nil];

//NSLog(@"文件屬性:%@",attributes);

//每個(gè)子文件所占的字節(jié)大小

longlongsize =[attributes[NSFileSize]longLongValue];

fileSize += size;

}

//轉(zhuǎn)為一兆(M)為單位

_countFileSize= fileSize /1024.0/1024.0;

NSLog(@"文件的儲(chǔ)存大斜韵伞:%f,,,,%lld",_countFileSize,fileSize);

//

//if (isClear == YES) {

//NSString *count = [NSString stringWithFormat:@"%.0f", _countFileSize];

//if ([count isEqualToString:@"0"]) {

//[MBProgressHUD showMessage:@"清理完成" view:self.view];

//isClear = NO;

//}else{

//[self countCacheFileSize];

//}

//}

//

//return _countFileSize;

_numLabel.text= [NSStringstringWithFormat:@"緩存:%04fM",_countFileSize];

}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市殉了,隨后出現(xiàn)的幾起案子开仰,更是在濱河造成了極大的恐慌,老刑警劉巖薪铜,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件众弓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡隔箍,警方通過查閱死者的電腦和手機(jī)谓娃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜒滩,“玉大人滨达,你說我怎么就攤上這事「┘瑁” “怎么了捡遍?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長竹握。 經(jīng)常有香客問我画株,道長,這世上最難降的妖魔是什么涩搓? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任污秆,我火速辦了婚禮,結(jié)果婚禮上昧甘,老公的妹妹穿的比我還像新娘良拼。我一直安慰自己,他們只是感情好充边,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布庸推。 她就那樣靜靜地躺著,像睡著了一般浇冰。 火紅的嫁衣襯著肌膚如雪贬媒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天肘习,我揣著相機(jī)與錄音际乘,去河邊找鬼。 笑死漂佩,一個(gè)胖子當(dāng)著我的面吹牛脖含,可吹牛的內(nèi)容都是我干的罪塔。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼养葵,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼征堪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起关拒,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤佃蚜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后着绊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谐算,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年归露,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氯夷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靶擦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雇毫,到底是詐尸還是另有隱情玄捕,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布棚放,位于F島的核電站枚粘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏飘蚯。R本人自食惡果不足惜馍迄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望局骤。 院中可真熱鬧攀圈,春花似錦、人聲如沸峦甩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凯傲。三九已至犬辰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冰单,已是汗流浹背幌缝。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诫欠,地道東北人涵卵。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓浴栽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缘厢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吃度,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容