IOS常用代碼整理

jopen 10年前發布 | 34K 次閱讀 iOS開發 移動開發 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;</pre>

</div>


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]; }</pre>

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;

}</pre>


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!