美文网首页技巧。。。
iOS开发中的一些技巧及代码片段

iOS开发中的一些技巧及代码片段

作者: 相关函数 | 来源:发表于2016-08-03 20:36 被阅读109次
  • 显示或隐藏Finder中的文件

你想打开整个系统的隐藏文件可以在终端下输入以下命令:
defaults write com.apple.finder AppleShowAllFiles -bool true
关闭显示隐藏功能
defaults write com.apple.finder AppleShowAllFiles -bool false
killall Finder 重启Finder

  • 使用终端查询代码总行数

使用终端命令进入项目所在的文件夹
在终端中输入

find . "(" -name "*.m" -or -name "*.strings" -or -name "*.h" ")" -print | xargs wc -l

回车就可以查询到了


代码行数

total前面的数字就是代码的行数...

  • 富文本改变文字不同区域的颜色
富文本实例

在UILabel UITextView UITextField等控件中都存在一个attributedText关键字,其实这就是富文本.他是NSAttributedString类型的,这个类中存在着改变文字不同段落的文字大小,颜色等属性的方法.富文本也就是可改变属性的字符串...

NSAttributedString遵循了NSCopying,NSMutaleCopying以及NSSecureCoding协议.可以通过代理实现相应的方法,在这里不详述这个属性.

init方法

如上图,我们可以使用NSString,来初始化一个富文本,也可以在使用字符串初始化的时候带一个文本属性,当然直接使用一个符文本的字符串初始化也可...

NSAttributedString中最重要的参数

_subtitleLab.text = [NSString stringWithFormat:@" %@",[_myDict objectForKey:@"subtitle"]];
_subtitleLab.width = SCREENWIDTH-20;
*attStr = [[NSMutableAttributedString alloc] initWithString:_subtitleLab.text];
NSArray *arr = [_subtitleLab.text componentsSeparatedByString:@":"];
NSString *firstStr = arr[0];
// [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(_subtitleLab.text.length-secondStr.length, secondStr.length)];
[attStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#ef8c55"] range:NSMakeRange(0, firstStr.length)];
_subtitleLab.attributedText = attStr;```

  • 二维码扫描器中间来回滚动的线的动画

UIView *line = [[UIImageView alloc] initWithFrame: CGRectMake(60, self.view.bounds.size.height/2.0-self.view.width+190, self.view.width-120, 2)];

line.backgroundColor = [UIColor colorWithHexString:@"62bb46"];

[self.view addSubview:line ];

[UIView animateWithDuration:2.5 delay:0.0 options:UIViewAnimationOptionRepeat animations:^{

   line.frame = CGRectMake(60, self.view.bounds.size.height/2.0+80, self.view.width-120, 2);

} completion:nil];

  • 调整图片大小
UIGraphicsBeginImageContext(size);
[img drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;

}```

  • 截屏

-(void)fullScreenshots{
UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}```

  • SDWebImage实现图片的渐进渐处模糊加载

[_photoImageView sd_setImageWithURL:[NSURL URLWithString:myParser.kv_photoStr] placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
SDWebImageManager *manager = [SDWebImageManager sharedManager];
if ([manager diskImageExistsForURL:[NSURL URLWithString:myParser.kv_photoStr]]) {
NSLog(@"不加载动画");
}else {
_photoImageView.alpha = 0.0;
[UIView transitionWithView:_photoImageView
duration:1.0
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[_photoImageView setImage:image];
_photoImageView.alpha = 1.0;
} completion:NULL];
}
}];```

  • UISegmentContrl更改Index上的文字颜色和大小

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, [UIFont systemFontOfSize:17],NSFontAttributeName, nil];
[segmentedCtrl setTitleTextAttributes:dic forState:UIControlStateSelected];

NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor],NSForegroundColorAttributeName, [UIFont systemFontOfSize:17],NSFontAttributeName, nil];
[segmentedCtrl setTitleTextAttributes:dic1 forState:UIControlStateNormal];```

  • 检查相机权限

pragma mark - 检查相机权限

  • (BOOL)canUserCamear{
    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if (authStatus == AVAuthorizationStatusDenied) {
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"请打开相机权限" message:@"设置-隐私-相机" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
    alertView.tag = 100;
    [alertView show];
    return NO;
    }
    else{
    return YES;
    }
    return YES;
    }

- 获取UISearchBar中的textField

>```
UITextField *txfSearchField = [searchBar valueForKey:@"_searchField"];
  • 解决手势与UIButton冲突问题
  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch.view isKindOfClass:[UIButton class]]){
    return NO;
    }
    return YES;
    }


[记一些技巧](http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=2652547085&idx=1&sn=549e63eb5c6a7e62ce16bc835e3fbc8b&scene=0#wechat_redirect)

相关文章

网友评论

    本文标题:iOS开发中的一些技巧及代码片段

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