iOS一些工具方法(欢迎补充)

作者: Kevin_ | 来源:发表于2016-07-22 23:26 被阅读0次

1.设置Label行间距

+ (void)setLineSpaceWithLabel:(UILabel *)label LineSpacing:(CGFloat)lineSpacing
{
    NSMutableAttributedString *attributedString =
    [[NSMutableAttributedString alloc] initWithString:label.text];
    NSMutableParagraphStyle *paragraphStyle =  [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:lineSpacing];
    //调整行间距
    [attributedString addAttribute:NSParagraphStyleAttributeName
                             value:paragraphStyle
                             range:NSMakeRange(0, [label.text length])];
    label.attributedText = attributedString;
}

2.创建一张实时模糊效果 View (毛玻璃效果)

+ (UIVisualEffectView *)effectViewWithFrame:(CGRect)frame
{
    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];
    effectView.frame = frame;
    return effectView;
}

3.对图片进行模糊处理

// CIGaussianBlur ---> 高斯模糊
// CIBoxBlur      ---> 均值模糊
// CIDiscBlur    --->  环形卷积模糊
// CIMedianFilter ---> 中值模糊, 用于消除图像噪点, 无需设置
// CIMotionBlur  --->  运动模糊, 用于模拟相机移动拍摄时的扫尾效果
+ (UIImage *)blurWithOriginalImage:(UIImage *)image
                          blurName:(NSString *)name
                            radius:(NSInteger)radius
{
    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *inputImage = [[CIImage alloc] initWithImage:image];
    CIFilter *filter;
    if (name.length != 0) {
        filter = [CIFilter filterWithName:name];
        [filter setValue:inputImage forKey:kCIInputImageKey];
        if (![name isEqualToString:@"CIMedianFilter"]) {
            [filter setValue:@(radius) forKey:@"inputRadius"];
        }
        CIImage *result = [filter valueForKey:kCIOutputImageKey];
        CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
        UIImage *resultImage = [UIImage imageWithCGImage:cgImage];
        CGImageRelease(cgImage);
        return resultImage;
    }else{
        return nil;
    }
}

4.对图片进行滤镜处理

// 怀旧 --> CIPhotoEffectInstant      单色 --> CIPhotoEffectMono
// 黑白 --> CIPhotoEffectNoir         褪色 --> CIPhotoEffectFade
// 色调 --> CIPhotoEffectTonal        冲印 --> CIPhotoEffectProcess
// 岁月 --> CIPhotoEffectTransfer     铬黄 --> CIPhotoEffectChrome
// CILinearToSRGBToneCurve, CISRGBToneCurveToLinear, CIGaussianBlur, CIBoxBlur, CIDiscBlur, CISepiaTone, CIDepthOfField
+ (UIImage *)filterWithOriginalImage:(UIImage *)image filterName:(NSString *)name
{
    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *inputImage = [[CIImage alloc] initWithImage:image];
    CIFilter *filter = [CIFilter filterWithName:name];
    [filter setValue:inputImage forKey:kCIInputImageKey];
    CIImage *result = [filter valueForKey:kCIOutputImageKey];
    CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
    UIImage *resultImage = [UIImage imageWithCGImage:cgImage];
    CGImageRelease(cgImage);
    return resultImage;
}

5.磁盘可用空间大小

+ (CGFloat)diskOfFreeSizeMBytes
{
    CGFloat size = 0.0;
    NSError *error;
    NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
    if (error) {
        NSLog(@"error: %@", error.localizedDescription);
    }else{
        NSNumber *number = [dic objectForKey:NSFileSystemFreeSize];
        size = [number floatValue]/1024/1024;
    }
    return size;
}

6.磁盘总空间大小

+ (CGFloat)diskOfAllSizeMBytes
{
    CGFloat size = 0.0;
    NSError *error;
    NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
    if (error) {
        NSLog(@"error: %@", error.localizedDescription);
    }else{
        NSNumber *number = [dic objectForKey:NSFileSystemSize];
        size = [number floatValue]/1024/1024;
    }
    return size;
}

7.是否有中文

+ (BOOL)isHaveChineseInString:(NSString *)string
{
    for(NSInteger i = 0; i < [string length]; i++){
        int a = [string characterAtIndex:i];
        if (a > 0x4e00 && a < 0x9fff) {
            return YES;
        }
    }
    return NO;
}

8.是否有空格

+ (BOOL)isHaveSpaceInString:(NSString *)string{
    NSRange _range = [string rangeOfString:@" "];
    if (_range.location != NSNotFound) {
        return YES;
    }else {
        return NO;
    }
}

小弟刚加入简书的第一篇文章,有不足的地方,欢迎各位大神补充、指教!

相关文章

  • iOS一些工具方法(欢迎补充)

    1.设置Label行间距 2.创建一张实时模糊效果 View (毛玻璃效果) 3.对图片进行模糊处理 4.对图片进...

  • iOS 常用方法封装 分享一下

    iOS 常用方法封装 分享一下 欢迎补充 .h方法 + (NSString *)md5big:(NSString...

  • iOS 关于iOS13那些事

    本文记录一些关于iOS 13的内容,欢迎指正和补充! 一、关于iOS13适配 1.关于一些私有属性的适配,iOS ...

  • js 常用工具方法汇总

    此贴记录所有我自己封装的一些项目中常用的工具方法,欢迎各种指导+补充。互相学习啦!Ajax请求: 调用的话就这样写...

  • IOS定时器操作和NSTimer的各种坑

    本文列举iOS的各种定时相关操作的使用方法,欢迎大家补充指教。主要包括: NSTimer GCD定时器 dispa...

  • iOS定时器

    本文列举iOS的各种定时相关操作的使用方法,欢迎大家补充指教。主要包括: NSTimer GCD定时器 dispa...

  • 上网过把写作的瘾,你也是这么玩的么?——实用主义者请进

    文|炜哥 序 本文讨论了适合实用主义者在互联网上写作和阅读的一些方法和工具。个人心得,必有所纰漏,欢迎补充。 前言...

  • moment使用小结

    引入moment 以下是项目中用到的一些结合moment封装的方法 欢迎补充!谢谢!

  • iOS常用方法工具箱(1)

    在iOS开发中经常会用上的一些方法工具,今天做了下整理,后续会陆续更新,欢迎互相加好友交流, 620软件 http...

  • python 斐波那契数列

    第一种方法:递归调用 第二种方法:for循环 写的会有一些不足的地方,欢迎补充!

网友评论

    本文标题:iOS一些工具方法(欢迎补充)

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