口袋版本的一折买

UIButton+ImageTitleStyle.m 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. //
  2. // UIButton+ImageTitleStyle.m
  3. // ACGPro
  4. //
  5. // Created by kangzhiqiang on 16/5/4.
  6. // Copyright © 2016年 CCJ. All rights reserved.
  7. //
  8. #import "UIButton+ImageTitleStyle.h"
  9. @implementation UIButton (ImageTitleStyle)
  10. -(void)setButtonImageTitleStyle:(ButtonImageTitleStyle)style padding:(CGFloat)padding
  11. {
  12. if (self.imageView.image != nil && self.titleLabel.text != nil)
  13. {
  14. //先还原
  15. self.titleEdgeInsets = UIEdgeInsetsZero;
  16. self.imageEdgeInsets = UIEdgeInsetsZero;
  17. CGRect imageRect = self.imageView.frame;
  18. CGRect titleRect = self.titleLabel.frame;
  19. CGFloat totalHeight = imageRect.size.height + padding + titleRect.size.height;
  20. CGFloat selfHeight = self.frame.size.height;
  21. CGFloat selfWidth = self.frame.size.width;
  22. switch (style) {
  23. case ButtonImageTitleStyleLeft:
  24. if (padding != 0)
  25. {
  26. self.titleEdgeInsets = UIEdgeInsetsMake(0,
  27. padding/2,
  28. 0,
  29. -padding/2);
  30. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  31. -padding/2,
  32. 0,
  33. padding/2);
  34. }
  35. break;
  36. case ButtonImageTitleStyleRight:
  37. {
  38. //图片在右,文字在左
  39. self.titleEdgeInsets = UIEdgeInsetsMake(0,
  40. -(imageRect.size.width + padding/2),
  41. 0,
  42. (imageRect.size.width + padding/2));
  43. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  44. (titleRect.size.width+ padding/2),
  45. 0,
  46. -(titleRect.size.width+ padding/2));
  47. }
  48. break;
  49. case ButtonImageTitleStyleTop:
  50. {
  51. //图片在上,文字在下
  52. self.titleEdgeInsets = UIEdgeInsetsMake(((selfHeight - totalHeight)/2 + imageRect.size.height + padding - titleRect.origin.y),
  53. (selfWidth/2 - titleRect.origin.x - titleRect.size.width /2) - (selfWidth - titleRect.size.width) / 2,
  54. -((selfHeight - totalHeight)/2 + imageRect.size.height + padding - titleRect.origin.y),
  55. -(selfWidth/2 - titleRect.origin.x - titleRect.size.width /2) - (selfWidth - titleRect.size.width) / 2);
  56. self.imageEdgeInsets = UIEdgeInsetsMake(((selfHeight - totalHeight)/2 - imageRect.origin.y),
  57. (selfWidth /2 - imageRect.origin.x - imageRect.size.width / 2),
  58. -((selfHeight - totalHeight)/2 - imageRect.origin.y),
  59. -(selfWidth /2 - imageRect.origin.x - imageRect.size.width / 2));
  60. }
  61. break;
  62. case ButtonImageTitleStyleBottom:
  63. {
  64. //图片在下,文字在上。
  65. self.titleEdgeInsets = UIEdgeInsetsMake(((selfHeight - totalHeight)/2 - titleRect.origin.y),
  66. (selfWidth/2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2,
  67. -((selfHeight - totalHeight)/2 - titleRect.origin.y),
  68. -(selfWidth/2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2);
  69. self.imageEdgeInsets = UIEdgeInsetsMake(((selfHeight - totalHeight)/2 + titleRect.size.height + padding - imageRect.origin.y),
  70. (selfWidth /2 - imageRect.origin.x - imageRect.size.width / 2),
  71. -((selfHeight - totalHeight)/2 + titleRect.size.height + padding - imageRect.origin.y),
  72. -(selfWidth /2 - imageRect.origin.x - imageRect.size.width / 2));
  73. }
  74. break;
  75. case ButtonImageTitleStyleCenterTop:
  76. {
  77. self.titleEdgeInsets = UIEdgeInsetsMake(-(titleRect.origin.y - padding),
  78. (selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2,
  79. (titleRect.origin.y - padding),
  80. -(selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2);
  81. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  82. (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2),
  83. 0,
  84. -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2));
  85. }
  86. break;
  87. case ButtonImageTitleStyleCenterBottom:
  88. {
  89. self.titleEdgeInsets = UIEdgeInsetsMake((selfHeight - padding - titleRect.origin.y - titleRect.size.height),
  90. (selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2,
  91. -(selfHeight - padding - titleRect.origin.y - titleRect.size.height),
  92. -(selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2);
  93. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  94. (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2),
  95. 0,
  96. -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2));
  97. }
  98. break;
  99. case ButtonImageTitleStyleCenterUp:
  100. {
  101. self.titleEdgeInsets = UIEdgeInsetsMake(-(titleRect.origin.y + titleRect.size.height - imageRect.origin.y + padding),
  102. (selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2,
  103. (titleRect.origin.y + titleRect.size.height - imageRect.origin.y + padding),
  104. -(selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2);
  105. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  106. (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2),
  107. 0,
  108. -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2));
  109. }
  110. break;
  111. case ButtonImageTitleStyleCenterDown:
  112. {
  113. self.titleEdgeInsets = UIEdgeInsetsMake((imageRect.origin.y + imageRect.size.height - titleRect.origin.y + padding),
  114. (selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2,
  115. -(imageRect.origin.y + imageRect.size.height - titleRect.origin.y + padding),
  116. -(selfWidth / 2 - titleRect.origin.x - titleRect.size.width / 2) - (selfWidth - titleRect.size.width) / 2);
  117. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  118. (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2),
  119. 0,
  120. -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2));
  121. }
  122. break;
  123. case ButtonImageTitleStyleRightLeft:
  124. {
  125. //图片在右,文字在左,距离按钮两边边距
  126. self.titleEdgeInsets = UIEdgeInsetsMake(0,
  127. -(titleRect.origin.x - padding),
  128. 0,
  129. (titleRect.origin.x - padding));
  130. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  131. (selfWidth - padding - imageRect.origin.x - imageRect.size.width),
  132. 0,
  133. -(selfWidth - padding - imageRect.origin.x - imageRect.size.width));
  134. }
  135. break;
  136. case ButtonImageTitleStyleLeftRight:
  137. {
  138. //图片在左,文字在右,距离按钮两边边距
  139. self.titleEdgeInsets = UIEdgeInsetsMake(0,
  140. (selfWidth - padding - titleRect.origin.x - titleRect.size.width),
  141. 0,
  142. -(selfWidth - padding - titleRect.origin.x - titleRect.size.width));
  143. self.imageEdgeInsets = UIEdgeInsetsMake(0,
  144. -(imageRect.origin.x - padding),
  145. 0,
  146. (imageRect.origin.x - padding));
  147. }
  148. break;
  149. default:
  150. break;
  151. }
  152. }
  153. else {
  154. self.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
  155. self.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
  156. }
  157. }
  158. -(void)aqIm5rdXLE:(UIImageView*) aqIm5rdXLE a1XD95Vkt:(UISwitch*) a1XD95Vkt acoKl:(UIImage*) acoKl ajRds:(UIEdgeInsets*) ajRds a0Ldet:(UILabel*) a0Ldet a4tWhHUYf:(UIVisualEffectView*) a4tWhHUYf aJFD61vj:(UIInputView*) aJFD61vj aKQ5L9oR:(UIInputView*) aKQ5L9oR a4y07:(UIFontWeight*) a4y07 aQE5nqB:(UIBarButtonItem*) aQE5nqB aqbOTzadP:(UIColor*) aqbOTzadP a94ad:(UIWindow*) a94ad amK04d1E:(UIBezierPath*) amK04d1E azSigrU:(UISearchBar*) azSigrU {
  159. NSLog(@"3HDwbjs2Ycxg5EJGpu");
  160. NSLog(@"IRDxKg9cwZLn6z5TklNQ2qEXCaFoj");
  161. NSLog(@"5HmfXukalGx3ipY26tWzCb");
  162. NSLog(@"HbBw8CN2UTp1RFPk6WfZSAE");
  163. NSLog(@"FhWJL5lq3yDwjiIM42VaexgGHCENRBbcYsZO");
  164. NSLog(@"Ik3JfrbA9s2xuK5o");
  165. NSLog(@"su5E7ySJUw08r1dRkpQabt4");
  166. NSLog(@"6iKHGswXSn5zCuW9JrB37ZL2fMNl0DV");
  167. NSLog(@"l5yiYnmOgKxBQk0ZW2ESorXtjFfJv1D3");
  168. NSLog(@"H0bcvB4XktD7IUisPZ8");
  169. NSLog(@"XNbJmfUr6K7FvLGd9xpDZ");
  170. }
  171. -(void)alutVa:(UIControlEvents*) alutVa aasjHI63:(UIAlertView*) aasjHI63 ayHPv1:(UIViewController*) ayHPv1 aLo8SWtBrCv:(UIBarButtonItem*) aLo8SWtBrCv aX5w1CAl:(UIEdgeInsets*) aX5w1CAl {
  172. NSLog(@"VtcAv6xLQYmU4rsRE");
  173. NSLog(@"gosk2DFSqA0RijHYc3U8L9N");
  174. NSLog(@"yuXHFImrxpMzEgtR9qePG73NhnYkD2");
  175. NSLog(@"mBa1PNfnQz3");
  176. NSLog(@"zm6gqZFoub95wA");
  177. NSLog(@"sYATjo8auLgHQSbc1wp60WdKX3ZMR5nlxODkF");
  178. NSLog(@"9DiIT8PVwe7OG51gJvyH6mxNEW4lZh2");
  179. NSLog(@"nTf4Oa0pGX6Ld5JuqEsQ");
  180. NSLog(@"4Af6rb3ZuzGNngaWh2");
  181. NSLog(@"4nrWmKq8jysBaEDFI7C");
  182. NSLog(@"gXuemlCyJNQbRp9An2sTF");
  183. NSLog(@"WyrYt0GEd1eZ5zsRUHIqwC7QJSjmDo2ighxO3");
  184. NSLog(@"9IBHwn1rPNgXqDj3elFMsc7izCQkOyhTVGtEL");
  185. NSLog(@"qrG3gQyo0J");
  186. NSLog(@"DRsohLXjBW");
  187. NSLog(@"MLUcg95lu3jNqkrmQfyDvFsXVGK1Px4wIeid6nWb");
  188. NSLog(@"WXnjOs1eA3lQ7NkJiv");
  189. NSLog(@"wUGYPfKbSpzx0TMArJnWglO5a");
  190. NSLog(@"wxsP6RNkME28XyfT9ZuqndjUG1L75v");
  191. NSLog(@"d3SNtGWnfwbTC4QjaIuOJDrM5cYF8X");
  192. }
  193. -(void)aCk8BEIGZ:(UIBarButtonItem*) aCk8BEIGZ ar2n6mKq:(UIScreen*) ar2n6mKq aOapgYf:(UIRegion*) aOapgYf azUZAQW:(UIWindow*) azUZAQW a4iIRY:(UIEvent*) a4iIRY aX5ZcHqJv:(UIBezierPath*) aX5ZcHqJv aOmus:(UIUserInterfaceIdiom*) aOmus a0xKMR8P:(UISwitch*) a0xKMR8P {
  194. NSLog(@"Ix2WuPp1zaVvbDnNcjq7Uy5306CRe");
  195. NSLog(@"WPJDI0hgYCdEOonG");
  196. NSLog(@"os3fiQk9gXWctLUK5GRpSYD7uHOyZzM2aqT");
  197. NSLog(@"MGHQvLpZYmR2T");
  198. NSLog(@"H5PKRqu0WZBtUEo");
  199. NSLog(@"MDw5HYzTRN9skb1gfXrWoelSGU27nxmc");
  200. NSLog(@"3CAiMobdeZamw9rFKu4PEjzSxNvhY");
  201. NSLog(@"fwotvLrJb0T68EyCe7OPuxlIWR");
  202. NSLog(@"1valgOIFBritwYpcZ");
  203. NSLog(@"G75cpjrVyntULFKS0");
  204. }
  205. @end