49.自己瞎写的自己看

1. iOS上 关于状态栏的相关设置(UIStatusBar)

  1. ios上状态栏 就是指的最上面的20像素高的部分,状态栏分前后两部分
    1) 前景部分:就是指的显示电池、时间等部分;默认的黑色(UIStatusBarStyleDefault),白色(UIStatusBarStyleLightContent)
    2) 背景部分:就是显示黑色或者图片的背景部分;
    3) 如下图:前景部分为白色,背景部分为黑色:
    这里写图片描述
  2. 将状态栏的前景颜色改为白色,需要在info.plist中将View controller-based status bar appearance改为NO,并且在程序代码里添加: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];或者[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
  3. 改变状态栏的背景颜色
    创建一个UIView,
    设置该UIView的frame.size和statusBar大小一样,
    设置该UIView的frame.origin 为{0,-20},
    设置该UIView的背景色为你希望的statusBar的颜色,
    在navigationBar上addSubView该UIView即可。

2. 其它

// 1.苹果Mac操作系统下怎么显示隐藏文件
显示: defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏: defaults write com.apple.finder AppleShowAllFiles -bool false

// 2.两个有用工具
团队合作工具:  https://worktile.com/
代码合成工具:  http://git.oschina.net/

// 3.常用开源三方
pod 'AFNetworking' 网络请求
pod 'MBProgressHUD' 加载菊花
pod 'MJRefresh' 上下拉刷新
pod 'SDWebImage' 网络图片请求
pod 'Masonry' 尺寸约束
pod 'DZNEmptyDataSet' 给空页面加个背景View
pod 'UMengSocial' 友盟分享

// 4.Mac几个常用终端命令
ls 当前目录所有文件
ls -a  隐藏文件
touch 文本.doc       创建文件
mkdir 新建文件夹  新建文件夹
rm 文本.doc      删除文件
rm -rf 新建文件夹 删除文件夹

// 5.-fno-obje-arc  arc下用mrc
//  -fobjc-arc  mrc下用arc

// 6.pch文件的使用:
1.创建pch文件: Command+N,打开新建文件窗口: ios->other->PCH file,添加需要引入的头文件名
2.在Building Setting中搜索Prefix Header,将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
3.双击Prefix Header右边,添加刚刚创建的pch文件的工程路径,添加格式:“$(SRCROOT)/项目名称/pch文件名”,$(SRCROOT)的意思就是工程根目录的意思。(Test工程名)
// $(SRCROOT)/Test/Test-Prefix.pch
// $(SRCROOT)/Test-Prefix.pch

// 7.常用Xcode插件
ESJsonFormat (快速创建Model)
VVDocumenter (注释)
Colorsense(颜色)
KSImageNamed (快速选择图片)
DXXcodeConsoleUnicodePlugin (格式化控制台)

// 8.这是在扯淡
login 登陆
logout 注销
Sign out 退出
Sign in 登陆
// 1.更改导航栏的默认返回bar,保留箭头,并将颜色改为白色
self.navigationItem.backBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

// 2.将导航栏的标题更改大小和颜色
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:20],NSForegroundColorAttributeName:[UIColor whiteColor]}];

// 3.网址文件名
NSString *url = @"http://api.tudou.com/v6/video/search?pageNo=1";
NSString *str = [NSString stringWithFormat:@"%ld.plist",[url hash]]; //将url转换成数字
NSString *str = [url stringByReplacingOccurrencesOfString:@"/" withString:@""]; //将url中的/去掉
NSString *str = [NSString stringWithFormat:@"%@.plist",[self md5:url]]; //url进行唯一加密
// MD5是一种不可逆的加密算法,只能用作一些检验过程,不能恢复其原文。apple还提供了RSA、DES、AES等加密算法
+ (NSString *)md5:(NSString *)str {
    const char *cStr = [str UTF8String]; // 转换成utf-8
    unsigned char result[16]; // 开辟一个16字节的空间
    CC_MD5( cStr, strlen(cStr), result);
    // CC_MD5官方封装好的加密方法
    // 把cStr字符串转换成了32位的16进制数列(不可逆转)存储到了result这个空间中
    return [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",result[0], result[1], result[2], result[3],result[4], result[5], result[6], result[7],result[8], result[9], result[10], result[11],result[12], result[13], result[14], result[15]];
}

// 4.网页
- (void)webViewDidStartLoad:(UIWebView *)webView{
    //字体大小
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'"];//330
    //字体颜色
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'gray'"];
    //页面背景色
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#2E2E2E'"];
}

// 5.时间计算
NSDate *date = [NSDate date];
NSInteger interval = date.timeIntervalSince1970 - hotForumModel.lastpostAt/1000;
if (interval/60 == 0) {//hotForumModel.lastpostAt发表时间
    self.lastpostAtLabel.text = @"刚刚";
}else if (interval/60>=1 && interval/60<60){
    self.lastpostAtLabel.text = [NSString stringWithFormat:@"%ld分钟前",interval/60];
}else if (interval/3600>= 1 && interval/3600 < 24){
    self.lastpostAtLabel.text = [NSString stringWithFormat:@"%ld小时前",interval/3600];
}else if (interval/86400>= 1 && interval/86400 < 30){
    self.lastpostAtLabel.text = [NSString stringWithFormat:@"%ld天前",interval/86400];
}else if (interval/(86400*30) >= 1 && interval/(86400*30) < 12){
    self.lastpostAtLabel.text = [NSString stringWithFormat:@"%ld个月前",interval/(86400*30)];
}else if (interval/(86400*360) >= 1){
    self.lastpostAtLabel.text = [NSString stringWithFormat:@"%ld年前",interval/(86400*360)];
}

// 6.改变Label上某些字的颜色
NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@在%@发表了帖子",maybeLoveModel.nickname,maybeLoveModel.forum]];
[noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, maybeLoveModel.nickname.length)];
[noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(maybeLoveModel.nickname.length+1, maybeLoveModel.forum.length)];
[self.nameForumLabel setAttributedText:noteStr];//把noteStr赋值给Label

// 7.UISegmentedControl重要方法
self.segVC.tintColor = [UIColor clearColor];//选中背景颜色(??)
NSDictionary *selectedTextAttributes = @{NSFontAttributeName:[UIFont boldSystemFontOfSize:16],NSForegroundColorAttributeName:[UIColor blueColor]};
[self.segVC setTitleTextAttributes:selectedTextAttributes forState:UIControlStateSelected];
NSDictionary* unselectedTextAttributes = @{NSFontAttributeName:[UIFont boldSystemFontOfSize:16], NSForegroundColorAttributeName: [UIColor colorWithWhite:0.145 alpha:1.000]};
[self.segVC setTitleTextAttributes:unselectedTextAttributes forState:UIControlStateNormal];

// 8.设置textView的默认提示文字方法
- (void)viewDidLoad {
    [super viewDidLoad];
    //在textView里面添加一个label,这个label里面写入你想要显示的placeholder,然后在textViewDidChange方法里面判断,如果当前的text长度为0,就把label显示出来,否则的话,就把Label隐藏了。注意要把label设置成不可点击。
    self.textView = [[UITextView alloc] initWithFrame:Rect];
    [self.view addSubview:self.textView];
    self.textView.delegate = self;
    // 提示输入文字
    self.hintLabel.enabled = NO;
    self.hintLabel.text = @"请在此输入反馈意见...";
    // 提示可输入字数
    self.canimPutNumLabel.enabled = NO;
    self.wordNum = 150;
}
//textView的代理
- (void)textViewDidChange:(UITextView *)textView{
    NSInteger wordNum = self.wordNum-textView.text.length;
    if (textView.text.length == 0) {
        self.wordNum = 150;
        [self.placeLabel setHidden:NO];
        [self.canimPutNumLabel setHidden:YES];
    }else{
        [self.placeLabel setHidden:YES];
        [self.canimPutNumLabel setHidden:NO];
        self.canimPutNumLabel.text = [NSString stringWithFormat:@"还可以输入%ld个字",wordNum];
    }if (wordNum == 0) {
        textView.editable = NO;
    }
}
// 1.for循环创建tableView
- createTableView {
    self.allTableView = [self createTableViewWithTag:0];
    self.currentTableView = [self createTableViewWithTag:1];
    self.bestTableView = [self createTableViewWithTag:2];
    // 或者
    for (NSInteger i = 0; i < 3; i++) {
        [self createTableViewWithTag:i];
    }
}
- (UITableView *)createTableViewWithTag:(NSInteger)tag {
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(WIDTH*tag, 0, WIDTH, HEIGHT-169) style:UITableViewStylePlain];
    tableView.tag = 101+tag;
    tableView.delegate = self;
    tableView.dataSource = self;
    // 数据请求,数据请求完成之后通过tag值拿到当前tableView刷新数据
    [self createDataWithStr:self.urlStrArr[tag] andTag:tag];
    tableView.tableFooterView = [[UIView alloc] init];
    // 添加到大的scrollView上面
    [self.bigScrollView addSubview:tableView];
    return tableView;
}

// 2.button的几个基本方法
设置按钮背景图片(setBackgroundImage)和背景颜色(setBackgroundColor)
设置按钮内部的左边箭头图片(setImage)和标题颜色(setTitleColor)

// 设置按钮的内容左对齐
nameButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

// 设置按钮的内边距(imageEdgeInsets,titleEdgeInsets,contentEdgeInsets)
nameButton.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
nameButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

// 设置按钮内部的imageView的内容模式为居中
nameButton.imageView.contentMode = UIViewContentModeCenter;

// 超出边框的内容不需要裁剪(默认是剪裁)
nameButton.imageView.clipsToBounds = NO;

// 监听组名按钮的点击
- (void)nameButtonClick {
    // 1.修改组模型的标记(状态取反)
    self.group.opened = !self.group.isOpened;
    // 2.(通过cell的协议方法)刷新表格
    if ([self.delegate respondsToSelector:@selector(headerViewDidClickedNameView:)]) {
        [self.delegate headerViewDidClickedNameView:self];
    }
}
// 当一个控件被添加到父控件中就会调用
- (void)didMoveToSuperview {
    if (self.group.opened) {
        self.nameView.imageView.transform = CGAffineTransformMakeRotation(M_PI_2);
    } else {
        self.nameView.imageView.transform = CGAffineTransformMakeRotation(0);
    }
}
// 当一个控件即将被添加到父控件中会调用
- (void)willMoveToSuperview:(UIView *)newSuperview {}

3. 计算文件大小

// 1.单个文件的大小,返回多少字节(Byte)
- (long long)fileSizeAtPath:(NSString *) filePath{
    //K是千 M是兆 G是吉咖 T是太拉
    //8bit(位)=1Byte(字节)
    //1024Byte(字节)=1KB
    //1024KB=1MB
    //1024MB=1GB
    //1024GB=1TB
    NSFileManager *manager = [NSFileManager defaultManager];
    if ([manager fileExistsAtPath:filePath]){
        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
    }
    return 0;
}

// 2.清除缓存方法
- (void)clearCache
{
    NSArray *sandBox = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    // 拿到JSON数据缓存文件夹路径
    NSString *cashPath = [sandBox[0] stringByAppendingPathComponent:@"travelWorld"];
    NSString *message = [NSString stringWithFormat:@"您确认清除%.1fM缓存",[self folderSizeAtPath:cashPath]];

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"温馨提示" message:message preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];

    UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action){

        // 清除JSON数据缓存文件夹
        NSFileManager *manager = [NSFileManager defaultManager];
        [manager removeItemAtPath:cashPath error:nil];

        // SDImageCache 自带图片缓存清理操作
        [[SDImageCache sharedImageCache] cleanDisk];
        [self.setTableView reloadData];
    }];

    [alert addAction:cancelAction];
    [alert addAction:sureAction];
    [self presentViewController:alert animated:YES completion:nil];
}

// 3.遍历文件夹获得文件夹大小,返回多少M
- (float)folderSizeAtPath:(NSString *)folderPath{
    NSFileManager *manager = [NSFileManager defaultManager];
    if (![manager fileExistsAtPath:folderPath]) return 0;
    NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
    NSString *fileName;
    long long folderSize = 0;

    // JSON数据缓文件存大小
    while ((fileName = [childFilesEnumerator nextObject]) != nil){
        NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
        folderSize += [[manager attributesOfItemAtPath:fileAbsolutePath error:nil] fileSize];
    }
    // SDWebImage 框架自身计算图片缓存大小方法
    folderSize += [[SDImageCache sharedImageCache] getSize];

    // 返回值是字节 B K M
    return folderSize/(1024.0*1024.0);//Byte(字节)-->M
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值