IOS常用代码整理
jopen
10年前
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; }