UI_Formatter&Function.m 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. //
  2. // UI_Formatter&Function.m
  3. // LN_School
  4. //
  5. // Created by apple on 2017/4/5.
  6. // Copyright © 2017年 Danson. All rights reserved.
  7. //
  8. #import "UI_Formatter&Function.h"
  9. @implementation UI_Formatter_Function
  10. @end
  11. @implementation UIFont (ex)
  12. +(id)scaleSize:(CGFloat)font
  13. {
  14. return [UIFont systemFontOfSize:font*kSize.width / 414.0];
  15. }
  16. @end
  17. @implementation UIImageView(formatter)
  18. - (void)setModeAspectFill {
  19. self.contentMode = UIViewContentModeScaleAspectFill;
  20. self.layer.masksToBounds = YES;
  21. }
  22. @end
  23. @implementation UIImage(formatter)
  24. -(UIImage *)reduceImage:(UIImage *)image percent:(float)percent
  25. {
  26. NSData *imageData = UIImageJPEGRepresentation(image, percent);
  27. UIImage *newImage = [UIImage imageWithData:imageData];
  28. return newImage;
  29. }
  30. //压缩图片尺寸
  31. - (UIImage*)scaledToSize:(CGSize)newSize
  32. {
  33. //首先要找到缩放比?
  34. CGFloat rate =newSize.width*1.0/ self.size.width ;
  35. if (self.size.height* rate > newSize.height) {
  36. //过长了。
  37. rate =newSize.height*1.0/ self.size.height ;
  38. }
  39. CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
  40. UIGraphicsBeginImageContext(size);
  41. [self drawInRect:CGRectMake(0,0,size.width,size.height)];
  42. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  43. UIGraphicsEndImageContext();
  44. return newImage;
  45. }
  46. - (UIImage*)scaledToWid:(CGFloat)width
  47. {
  48. //首先要找到缩放比?
  49. CGFloat rate =width*1.0/ self.size.width ;
  50. if (self.size.height* rate > width) {
  51. //过长了。
  52. rate =width*1.0/ self.size.height ;
  53. }
  54. CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
  55. UIGraphicsBeginImageContext(size);
  56. [self drawInRect:CGRectMake(0,0,size.width,size.height)];
  57. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  58. UIGraphicsEndImageContext();
  59. return newImage;
  60. }
  61. /**
  62. * 修改图片的大小
  63. */
  64. -(UIImage*)originImageScaleToSize:(CGSize)size
  65. {
  66. UIGraphicsBeginImageContext(size); //size 为CGSize类型,即你所需要的图片尺寸
  67. [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
  68. UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
  69. UIGraphicsEndImageContext();
  70. return scaledImage; //返回的就是已经改变的图片
  71. }
  72. #pragma mark - 改变照片颜色
  73. // Tint: Color
  74. -(UIImage*)tint:(UIColor*)color {
  75. return [self rt_tintedImageWithColor:color level:1.0f];
  76. }
  77. // Tint: Color + level
  78. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color level:(CGFloat)level {
  79. CGRect rect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
  80. return [self rt_tintedImageWithColor:color rect:rect level:level];
  81. }
  82. // Tint: Color + Rect
  83. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect {
  84. return [self rt_tintedImageWithColor:color rect:rect level:1.0f];
  85. }
  86. // Tint: Color + Rect + level
  87. -(UIImage*)rt_tintedImageWithColor:(UIColor*)color rect:(CGRect)rect level:(CGFloat)level {
  88. CGRect imageRect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
  89. UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
  90. CGContextRef ctx = UIGraphicsGetCurrentContext();
  91. [self drawInRect:imageRect];
  92. CGContextSetFillColorWithColor(ctx, [color CGColor]);
  93. CGContextSetAlpha(ctx, level);
  94. CGContextSetBlendMode(ctx, kCGBlendModeSourceAtop);
  95. CGContextFillRect(ctx, rect);
  96. CGImageRef imageRef = CGBitmapContextCreateImage(ctx);
  97. UIImage *darkImage = [UIImage imageWithCGImage:imageRef
  98. scale:self.scale
  99. orientation:self.imageOrientation];
  100. CGImageRelease(imageRef);
  101. UIGraphicsEndImageContext();
  102. return darkImage;
  103. }
  104. - (UIImage *)scaledAndCutToSize:(CGSize)newSize{
  105. //首先要找到缩放比 按短的适配 长的部分裁减掉
  106. CGFloat rate =newSize.width*1.0/ self.size.width ;
  107. if (self.size.height* rate < newSize.height) {
  108. //过长了。
  109. rate =newSize.height*1.0/ self.size.height ;
  110. }
  111. CGSize size = CGSizeMake(self.size.width*rate, self.size.height*rate);
  112. UIGraphicsBeginImageContext(size);
  113. [self drawInRect:CGRectMake(0,0,size.width,size.height)];
  114. // Get the new image from the context
  115. UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  116. // End the context
  117. UIGraphicsEndImageContext();
  118. // Return the new image.
  119. return newImage;
  120. }
  121. @end
  122. @implementation NSNumber (formatter)
  123. + (NSString *)stringValue {
  124. return [NSString stringWithFormat:@"%@",self];
  125. }
  126. @end
  127. @implementation UIView (formatter)
  128. - (void)setX:(CGFloat)x {
  129. CGRect rect = self.frame;
  130. rect.origin.x = x;
  131. self.frame = rect;
  132. }
  133. -(CGFloat)x {
  134. return self.frame.origin.x;
  135. }
  136. - (void)setY:(CGFloat)y {
  137. CGRect rect = self.frame;
  138. rect.origin.y = y;
  139. self.frame = rect;
  140. }
  141. -(CGFloat)y {
  142. return self.frame.origin.y;
  143. }
  144. - (void)setCenterX:(CGFloat)centerX {
  145. CGPoint center = self.center;
  146. center.x = centerX;
  147. self.center = center;
  148. }
  149. - (CGFloat)centerX {
  150. return self.center.x;
  151. }
  152. - (void)setCenterY:(CGFloat)centerY {
  153. CGPoint center = self.center;
  154. center.y = centerY;
  155. self.center = center;
  156. }
  157. - (CGFloat)centerY {
  158. return self.center.y;
  159. }
  160. - (void)setWidth:(CGFloat)width {
  161. CGRect rect = self.frame;
  162. rect.size.width = width;
  163. self.frame = rect;
  164. }
  165. - (CGFloat)width {
  166. return self.frame.size.width;
  167. }
  168. - (void)setHeight:(CGFloat)height {
  169. CGRect rect = self.frame;
  170. rect.size.height = height;
  171. self.frame = rect;
  172. }
  173. - (CGFloat)height {
  174. return self.frame.size.height;
  175. }
  176. @end
  177. @implementation UILabel(formatter)
  178. -(void)setFont:(CGFloat)font TextColor:(UIColor*)color
  179. {
  180. [self setFont:[UIFont scaleSize:font]];
  181. [self setTextColor:color];
  182. }
  183. -(void)setText:(NSString*)text Font:(CGFloat)font TextColor:(UIColor*)color
  184. {
  185. [self setText:text];
  186. [self setFont:[UIFont scaleSize:font]];
  187. [self setTextColor:color];
  188. }
  189. -(void)setText:(NSString*)text Font:(CGFloat)font TextColor:(UIColor*)color Alignment:(NSTextAlignment)align
  190. {
  191. [self setText:text Font:font TextColor:color];
  192. [self setTextAlignment:align];
  193. }
  194. @end