码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-19 14:55:10      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

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(温馨提示));

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

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

标签:

原文地址:http://www.cnblogs.com/pengsi/p/5787446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!