《省钱达人》与《猎豆优选》UI相同版。域名tbk

UIView+ST.m 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. //
  2. // UIView+ST.m
  3. // STPhotoBrowser
  4. //
  5. // Created by https://github.com/STShenZhaoliang/STPhotoBrowser.git on 16/1/15.
  6. // Copyright © 2016年 ST. All rights reserved.
  7. //
  8. #import "UIView+ST.h"
  9. @implementation UIView (ST)
  10. - (void)setX:(CGFloat)x
  11. {
  12. CGRect frame = self.frame;
  13. frame.origin.x = x;
  14. self.frame = frame;
  15. }
  16. - (void)setY:(CGFloat)y
  17. {
  18. CGRect frame = self.frame;
  19. frame.origin.y = y;
  20. self.frame = frame;
  21. }
  22. - (CGFloat)x
  23. {
  24. return self.frame.origin.x;
  25. }
  26. - (CGFloat)y
  27. {
  28. return self.frame.origin.y;
  29. }
  30. - (void)setWidth:(CGFloat)width
  31. {
  32. CGRect frame = self.frame;
  33. frame.size.width = width;
  34. self.frame = frame;
  35. }
  36. - (void)setHeight:(CGFloat)height
  37. {
  38. CGRect frame = self.frame;
  39. frame.size.height = height;
  40. self.frame = frame;
  41. }
  42. - (CGFloat)height
  43. {
  44. return self.frame.size.height;
  45. }
  46. - (CGFloat)width
  47. {
  48. return self.frame.size.width;
  49. }
  50. - (UIView * (^)(CGFloat x))setX
  51. {
  52. return ^(CGFloat x) {
  53. self.x = x;
  54. return self;
  55. };
  56. }
  57. - (void)setCenterX:(CGFloat)centerX
  58. {
  59. CGPoint center = self.center;
  60. center.x = centerX;
  61. self.center = center;
  62. }
  63. - (CGFloat)centerX
  64. {
  65. return self.center.x;
  66. }
  67. - (void)setCenterY:(CGFloat)centerY
  68. {
  69. CGPoint center = self.center;
  70. center.y = centerY;
  71. self.center = center;
  72. }
  73. - (CGFloat)centerY
  74. {
  75. return self.center.y;
  76. }
  77. - (void)setSize:(CGSize)size
  78. {
  79. CGRect frame = self.frame;
  80. frame.size = size;
  81. self.frame = frame;
  82. }
  83. - (CGSize)size
  84. {
  85. return self.frame.size;
  86. }
  87. - (void)setOrigin:(CGPoint)origin
  88. {
  89. CGRect frame = self.frame;
  90. frame.origin = origin;
  91. self.frame = frame;
  92. }
  93. - (CGPoint)origin
  94. {
  95. return self.frame.origin;
  96. }
  97. - (CGFloat)left {
  98. return self.frame.origin.x;
  99. }
  100. - (void)setLeft:(CGFloat)x {
  101. CGRect frame = self.frame;
  102. frame.origin.x = x;
  103. self.frame = frame;
  104. }
  105. - (CGFloat)top {
  106. return self.frame.origin.y;
  107. }
  108. - (void)setTop:(CGFloat)y {
  109. CGRect frame = self.frame;
  110. frame.origin.y = y;
  111. self.frame = frame;
  112. }
  113. - (CGFloat)right {
  114. return self.frame.origin.x + self.frame.size.width;
  115. }
  116. - (void)setRight:(CGFloat)right {
  117. CGRect frame = self.frame;
  118. frame.origin.x = right - frame.size.width;
  119. self.frame = frame;
  120. }
  121. - (CGFloat)bottom {
  122. return self.frame.origin.y + self.frame.size.height;
  123. }
  124. - (void)setBottom:(CGFloat)bottom {
  125. CGRect frame = self.frame;
  126. frame.origin.y = bottom - frame.size.height;
  127. self.frame = frame;
  128. }
  129. - (UIView *(^)(UIColor *color)) setColor
  130. {
  131. return ^ (UIColor *color) {
  132. self.backgroundColor = color;
  133. return self;
  134. };
  135. }
  136. - (UIView *(^)(CGRect frame)) setFrame
  137. {
  138. return ^ (CGRect frame) {
  139. self.frame = frame;
  140. return self;
  141. };
  142. }
  143. - (UIView *(^)(CGSize size)) setSize
  144. {
  145. return ^ (CGSize size) {
  146. self.bounds = CGRectMake(0, 0, size.width, size.height);
  147. return self;
  148. };
  149. }
  150. - (UIView *(^)(CGPoint point)) setCenter
  151. {
  152. return ^ (CGPoint point) {
  153. self.center = point;
  154. return self;
  155. };
  156. }
  157. - (UIView *(^)(NSInteger tag)) setTag
  158. {
  159. return ^ (NSInteger tag) {
  160. self.tag = tag;
  161. return self;
  162. };
  163. }
  164. - (void)setHollowWithCenterFrame:(CGRect)centerFrame
  165. {
  166. UIBezierPath *path = [UIBezierPath bezierPath];
  167. [path appendPath:[UIBezierPath bezierPathWithRect:self.frame]];
  168. [path appendPath:[UIBezierPath bezierPathWithRect:centerFrame].bezierPathByReversingPath];
  169. CAShapeLayer *maskLayer = [CAShapeLayer layer];
  170. maskLayer.path = path.CGPath;
  171. self.layer.mask = maskLayer;
  172. }
  173. /**
  174. * 1.获取屏幕图片
  175. */
  176. - (UIImage *)imageFromSelfView
  177. {
  178. return [self imageFromViewWithFrame:self.frame];
  179. }
  180. - (UIImage *)imageFromViewWithFrame:(CGRect)frame
  181. {
  182. UIGraphicsBeginImageContext(self.frame.size);
  183. CGContextRef context = UIGraphicsGetCurrentContext();
  184. CGContextSaveGState(context);
  185. UIRectClip(frame);
  186. [self.layer renderInContext:context];
  187. UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
  188. UIGraphicsEndImageContext();
  189. return theImage;
  190. }
  191. @end