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一些工具方法(欢迎补充)

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