美文网首页iOS Developer
6.23工作日记--xib-Btn高亮,App文件路径及操作

6.23工作日记--xib-Btn高亮,App文件路径及操作

作者: _bab | 来源:发表于2016-06-23 19:48 被阅读89次

一.修改按钮高亮状态(xib)

用xib设置按钮的高亮状态,首先Type类型为Custom,修改Sate Config(明显是状态嘛),改为Highlighted,注意,要选择Background的图片(不要选Image来设置啊,否则这个按钮左边是图片,右边是文字。。。这个是默认的,否则还得改什么contentEdgeInsets,怪麻烦的)。

二.沙盒

1.沙盒简介

iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒。每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme。沙盒里面的文件可以是照片、声音文件、文本、属性列表等。

每一个APP都有一个存储空间,就是沙盒。

APP之间不能相互通信。

沙盒根目录结构:Documents、Library、temp。

简述一下Documents、Library、tmp的区别:

Documents:用于存储用户数据,iTunes备份和恢复的时候会包括此目录,所以,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下。

Library:包含两个子目录:Caches 和 Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。

tmp:用于存放临时文件,这个可以放一些当APP退出后不再需要的文件

打开模拟器沙盒方法

方法一:前往文件夹打开

/Users/wf/Library/Developer/CoreSimulator/Devices/29CABB1F-3063-4F2F-869B-ACFCAD07D99C/data/Containers/Data/Application/

直接在Finder->前往->前往文件夹,输入上面的内容即可。

方法二:通过Finder一步步查找

模拟器上的APP的沙盒实在用户目录下的资源库里面,但是资源库是隐藏文件夹。所以查看沙盒之前,现将隐藏文件夹显示出来。显示隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool true

用心的童鞋会发现,隐藏隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool false

获取沙盒根目录

//获取沙盒根目录

NSString*directory=NSHomeDirectory();

获取Documents路径

//获取Documents路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

获取Documents文件夹目录,第一个参数是说明获取Doucments文件夹目录,第二个参数说明是在当前应用沙盒中获取。

获取Library路径

//获取Library路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

NSLog(@"path:%@",path);

获取Caches路径

//获取Caches路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

NSLog(@"path:%@",path);

获取tmp路径

NSString*tmp=NSTemporaryDirectory();

NSLog(@"tmp:%@",tmp);

三.文件操作(今天主要是计算文件大小)

1.获取单个文件所占空间

//单个文件的大小

- (longlong)fileSizeAtPath:(NSString*)filePath{ 

NSFileManager* manager = [NSFileManager defaultManager];

if([manager fileExistsAtPath:filePath]){

//RXLog(@"文件名称是%@,文件大小是%llu", filePath, [[manager attributesOfItemAtPath:filePath error:nil] fileSize]);

return[[managerattributesOfItemAtPath:filePatherror:nil]fileSize];

}

return0;

}

// filePath是文件路径

2.Cache里面所有文件所占空间

- (CGFloat)folderSizeAtPath:(NSString*)folderPath{

NSFileManager *manager = [NSFileManager defaultManager];

if(![manager fileExistsAtPath:folderPath]){

return0;

}

NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath]objectEnumerator];

NSString *fileName =nil;

long long folderSize =0;

while((fileName = [childFilesEnumerator nextObject]) !=nil) {

NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

folderSize += [self fileSizeAtPath:fileAbsolutePath];

}

returnfolderSize / (1024*1024);

}

3.清除文件

- (void)clearFileCache{

//放子线程里面去

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)objectAtIndex:0];

NSArray *files = [[NSFileManager defaultManager]subpathsAtPath:cachePath];

//RXLog(@"缓存目录是%@,文件是%@", cachePath, files);

NSError *error;

for(NSString *str in files){

NSString *path = [cachePath stringByAppendingPathComponent:str];

if([[NSFileManager defaultManager]fileExistsAtPath:path]){

[[NSFileManager defaultManager]removeItemAtPath:path error:&error];

}

}

dispatch_async(dispatch_get_main_queue(), ^{

[self clearCacheSuccess];

});

});

}

4.更新界面

- (void)clearCacheSuccess{

//RXLog(@"清除成功");

self.allFileSize=0;

[self.tableViewreloadData];

[MBProgressHUDshow:@"清除缓存成功!"displayTime:1.5];

}

注意:清除操作方子线程里面,但是更新UI必须放在主线程里面,否则会操作失败。

5.cell里面数据重叠的问题

以前用这个方法解决,但是,这个方法太low了。。。把contentView里面的控件全部删除,再添加进来。

while([cell.contentView.subviews lastObject] !=nil) {

[(UIView*)[cell.contentView.subviewslastObject]removeFromSuperview];

}

然后今天是把这个控件给了self,然后加载的时候只是针对这个控件做一些操作。

self.cacheSizeLabel.text=nil;  加载前先置为空。不知道这个方法是否好用。

最后,我们总是在尝试中进步,今晚接着看小码哥的视频,百思不得姐下载不下来~~先看基础知识吧~~

相关文章

  • 6.23工作日记--xib-Btn高亮,App文件路径及操作

    一.修改按钮高亮状态(xib) 用xib设置按钮的高亮状态,首先Type类型为Custom,修改Sate Conf...

  • 电脑常用终端命令

    一、文件操作 1、查看文件列表 ls ls 查看当前路径下的文件及文件夹的名字 ls /bin 表示:查看当前路径...

  • node.js 中的文件操作路径和模块路径

    文件操作路径 模块操作路径:

  • Android数据存储

    (一)文件存储分类: 获取文件路径:内部路径和外部路径如下: 文件写操作如下: 文件读操作如下: 文件存储在设备上...

  • 生信星球学习小组Day2

    作图 R基本操作 工作路径设置 查看工作目录:getwd()更改工作目录:setwd() 查看工作路径的文件 两者...

  • OS库

    os库基本介绍 os库提供通用的、基本的操作系统交互功能 -路径操作:os.path子库,处理文件路径及信息 ...

  • 程序猿常用的linux命令

    文件及文件夹操作 1.cd + 文件路径:进入文件夹 3.rm -rf + 文件夹:删除文件夹 4.unzip :...

  • dos命令创建删除文件夹

    创建mkdir 文件路径 删除rd 文件路径 递归无提示删除指定文件夹及子目录及子文件rd /s /q 文件路径

  • 小程序-入门记录1

    小程序:app json下pages下新建路径 自动创建文件夹及子文件 那么,div,section,artic...

  • django 工程创建

    创建Django工程 创建APP 数据库操作 运行Django 配置settings.py 模板路径 静态文件st...

网友评论

    本文标题:6.23工作日记--xib-Btn高亮,App文件路径及操作

    本文链接:https://www.haomeiwen.com/subject/qccodttx.html