IOS常用代码整理

1、更改cell选中的背景

UIView *cellView = [[UIView alloc] init];

cellView.frame = CGRectMake(0, 0, 320, 44);

cellView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"xxx.png"]];
cell.selectedBackgroundView = cellView;



2、截取屏幕图片

UIGraphicsBeginImageContext(CGSizeMake(xxx,xxx));
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imageData = UIImagePNGRepresentation(aImage);


3、自定义字符串颜色,拷代码,可直接用

+ (UIColor *) colorWithHexString: (NSString *) stringToConvert

{
    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; //去掉前后空格换行符
    // String should be 6 or 8 characters
    if ([cString length] < 6) return [UIColor redColor];
    // strip 0X if it appears
    if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
    if ([cString length] != 6) return [UIColor redColor];
    // Separate into r, g, b substrings
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    // Scan values
    unsigned int r, g, b;
    [[NSScanner scannerWithString:rString] scanHexInt:&r];  //扫描16进制到int
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    return [UIColor colorWithRed:((float) r / 255.0f)
                           green:((float) g / 255.0f)
                            blue:((float) b / 255.0f)
                           alpha:1.0f];
}


4、压缩图片,所需参数,需要处理的图片,新图片的size

- (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize

{

    UIGraphicsBeginImageContext(newSize);

    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;

}

5、得到Label的Size,根据Label的内容,字体,字体大小,宽度。一般用于求Label的高度。

+(CGSize)getSizeForLabel:(NSString *)str fontFamily:(NSString *)fontFamily fontSize:(CGFloat)fontSize width:(NSInteger)labelWidth{
    UIFont *font = [UIFontfontWithName:fontFamily size:fontSize];
    CGSize size = CGSizeMake(labelWidth,3000);
    return [strsizeWithFont:font constrainedToSize:sizelineBreakMode:UILineBreakModeCharacterWrap];
}


6、将data转换成64位的二进制,一般用于图片的上传。

+(NSString*) base64Encode:(NSData *)data
{
    static char base64EncodingTable[64] = {
        'A', 'B','C', 'D', 'E','F', 'G', 'H','I', 'J', 'K','L', 'M', 'N','O', 'P',
        'Q', 'R','S', 'T', 'U','V', 'W', 'X','Y', 'Z', 'a','b', 'c', 'd','e', 'f',
        'g', 'h','i', 'j', 'k','l', 'm', 'n','o', 'p', 'q','r', 's', 't','u', 'v',
        'w', 'x','y', 'z', '0','1', '2', '3','4', '5', '6','7', '8', '9','+', '/'
    };
    int length = [data length];
    unsigned long ixtext, lentext;
    long ctremaining;
    unsigned char input[3], output[4];
    short i, charsonline = 0, ctcopy;
    const unsignedchar *raw;
    NSMutableString *result;
    
    lentext = [data length]; 
    if (lentext < 1)
        return @"";
    result = [NSMutableStringstringWithCapacity: lentext];
    raw = [data bytes];
    ixtext = 0; 
    
    while (true) {
        ctremaining = lentext - ixtext;
        if (ctremaining <= 0) 
            break;        
        for (i = 0; i <3; i++) { 
            unsigned long ix = ixtext + i;
            if (ix < lentext)
                input[i] = raw[ix];
            else
                input[i] = 0;
        }
        output[0] = (input[0] &0xFC) >> 2;
        output[1] = ((input[0] &0x03) << 4) | ((input[1] &0xF0) >> 4);
        output[2] = ((input[1] &0x0F) << 2) | ((input[2] &0xC0) >> 6);
        output[3] = input[2] &0x3F;
        ctcopy = 4;
        switch (ctremaining) {
            case 1: 
                ctcopy = 2; 
                break;
            case 2: 
                ctcopy = 3; 
                break;
        }
        
        for (i = 0; i < ctcopy; i++)
            [result appendString: [NSStringstringWithFormat: @"%c", base64EncodingTable[output[i]]]];
        
        for (i = ctcopy; i < 4; i++)
            [result appendString: @"="];
        
        ixtext += 3;
        charsonline += 4;
        
        if ((length > 0) && (charsonline >= length))
            charsonline = 0;
    }     
    return result;
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值