• 这些小技巧你知道么????


    1.

    判断图片的类型:

    方法一 :

     // 1.判断是否是gif图
        NSString *extensionName = path.pathExtension;
        NSLog(@"extensionName = %@",extensionName);
        if ([extensionName.lowercaseString isEqualToString:@"gif"]) {
            NSLog(@"是gif图");
        }

    其他图片类型类似......你是不是之前也和我一样截取的字符串呢...嘿嘿!!!

    方法二:

    // 2.通过图片Data数据第一个字节 来获取图片扩展名
    - (NSString *)contentTypeForImageData:(NSData *)data {
        uint8_t c;
        [data getBytes:&c length:1];
        switch (c) {
            case 0xFF:
                return @"jpeg";
            case 0x89:
                return @"png";
            case 0x47:
                return @"gif";
            case 0x49:
            case 0x4D:
                return @"tiff";
            case 0x52:
                if ([data length] < 12) {
                    return nil;
                }
                NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
                if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
                    return @"webp";
                }
                return nil;
        }
        return nil;
    }

    直接调用这个方法就好啦...嘻嘻嘻!!!

     NSString *path = @"http://pic.rpgsky.net/images/2016/07/26/3508cde5f0d29243c7d2ecbd6b9a30f1.png";;
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
    NSString *extensionName = [self contentTypeForImageData:data];
    NSLog(@"extensionName = %@",extensionName);
        

    2. 设置图片圆角:

    你是不是和我之前一样是这么设置的呢?

     imgView.layer.masksToBounds = YES;

     imgView.layer.cornerRadius = 20;

    但是这种设置可能会造成卡顿哟!!! 其实你可以这样......

    写一个UIImage的category:

    #import "UIImage+CircleImage.h"
    
    @implementation UIImage (CircleImage)
    
    - (UIImage *)cutCircleImage {
        UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
        // 获取上下文
        CGContextRef ctr = UIGraphicsGetCurrentContext();
        // 设置圆形
        CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
        CGContextAddEllipseInRect(ctr, rect);
        // 裁剪
        CGContextClip(ctr);
        // 将图片画上去
        [self drawInRect:rect];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return image;
    }

    3.宏定义:

    定义一个打印输出的宏定义:

    #define PSLOG(str) [NSString stringWithFormat:@"%@",str]

    你可能会是这么使用的: 然后会发现有个警告!!! 原因看下面!!!!!!!~~~~哈哈哈

     NSLog(PSLOG(@"jknjvnvjknvkjvvd"));
     /*
    Format string is not a string literal (potentially insecure) 说明NSLog要求的参数为字面量,不可为NSString* 类型,加个参数为nil */ 其实你应该这样: NSLog(PSLOG(@"jknjvnvjknvkjvvd"),nil);

    其实你还可以这样:

    #define PSLOG1(str) [NSString stringWithFormat:@"%@",@#str]

        NSLog(@"----%@",PSLOG1(温馨提示));

    相当于用@""用@#代替了哟...这样是不是也是很方便呀......

  • 相关阅读:
    一个统计代码行数的简单方法
    关于string的对象引用
    mysql连接的一些问题。
    linux环境初始化 用户问题
    php null o false ''
    php支付宝在线支付接口开发教程【转】
    模拟支付宝服务窗环境
    ctags
    校验全球电话号码 正确性 库 正则表达式
    php短路与 短路或
  • 原文地址:https://www.cnblogs.com/pengsi/p/5787446.html
Copyright © 2020-2023  润新知