两折卖----返利app-----返利圈

UILabel+ChangeLineSpaceAndWordSpace.m 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. //
  2. // UILabel+ChangeLineSpaceAndWordSpace.m
  3. // Elephant
  4. //
  5. // Created by dyy on 2018/1/19.
  6. // Copyright © 2018年 杭州大象品牌营销策划有限公司. All rights reserved.
  7. //
  8. #import "UILabel+ChangeLineSpaceAndWordSpace.h"
  9. #import <objc/runtime.h>
  10. #import <CoreText/CoreText.h>
  11. @implementation UILabel (ChangeLineSpaceAndWordSpace)
  12. -(CGFloat)characterSpace{
  13. return [objc_getAssociatedObject(self,_cmd) floatValue];
  14. }
  15. -(void)setCharacterSpace:(CGFloat)characterSpace{
  16. objc_setAssociatedObject(self, @selector(characterSpace), @(characterSpace), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  17. }
  18. -(CGFloat)lineSpace{
  19. return [objc_getAssociatedObject(self, _cmd) floatValue];
  20. }
  21. -(void)setLineSpace:(CGFloat)lineSpace{
  22. objc_setAssociatedObject(self, @selector(lineSpace), @(lineSpace), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  23. }
  24. -(NSString *)keywords{
  25. return objc_getAssociatedObject(self, _cmd);
  26. }
  27. -(void)setKeywords:(NSString *)keywords{
  28. objc_setAssociatedObject(self, @selector(keywords), keywords, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  29. }
  30. -(UIFont *)keywordsFont{
  31. return objc_getAssociatedObject(self, _cmd);
  32. }
  33. -(void)setKeywordsFont:(UIFont *)keywordsFont{
  34. objc_setAssociatedObject(self, @selector(keywordsFont), keywordsFont, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  35. }
  36. -(UIColor *)keywordsColor{
  37. return objc_getAssociatedObject(self, _cmd);
  38. }
  39. -(void)setKeywordsColor:(UIColor *)keywordsColor{
  40. objc_setAssociatedObject(self, @selector(keywordsColor), keywordsColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  41. }
  42. -(NSString *)underlineStr{
  43. return objc_getAssociatedObject(self, _cmd);
  44. }
  45. -(void)setUnderlineStr:(NSString *)underlineStr{
  46. objc_setAssociatedObject(self, @selector(underlineStr), underlineStr, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  47. }
  48. -(UIColor *)underlineColor{
  49. return objc_getAssociatedObject(self, _cmd);
  50. }
  51. -(void)setUnderlineColor:(UIColor *)underlineColor{
  52. objc_setAssociatedObject(self, @selector(underlineColor), underlineColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  53. }
  54. /**
  55. * 根据最大宽度计算label宽,高
  56. *
  57. * @param maxWidth 最大宽度
  58. *
  59. * @return rect
  60. */
  61. - (CGSize)getLableRectWithMaxWidth:(CGFloat)maxWidth{
  62. NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:self.text];
  63. [attributedString addAttribute:NSFontAttributeName value:self.font range:NSMakeRange(0,self.text.length)];
  64. NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
  65. // paragraphStyle.alignment=NSTextAlignmentCenter;
  66. paragraphStyle.alignment=self.textAlignment;
  67. paragraphStyle.lineBreakMode=self.lineBreakMode;
  68. // 行间距
  69. if(self.lineSpace > 0){
  70. [paragraphStyle setLineSpacing:self.lineSpace];
  71. [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0,self.text.length)];
  72. }
  73. // 字间距
  74. if(self.characterSpace > 0){
  75. long number = self.characterSpace;
  76. CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number);
  77. [attributedString addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedString length])];
  78. CFRelease(num);
  79. }
  80. //关键字
  81. if (self.keywords) {
  82. NSRange itemRange = [self.text rangeOfString:self.keywords];
  83. if (self.keywordsFont) {
  84. [attributedString addAttribute:NSFontAttributeName value:self.keywordsFont range:itemRange];
  85. }
  86. if (self.keywordsColor) {
  87. [attributedString addAttribute:NSForegroundColorAttributeName value:self.keywordsColor range:itemRange];
  88. }
  89. }
  90. //下划线
  91. if (self.underlineStr) {
  92. NSRange itemRange = [self.text rangeOfString:self.underlineStr];
  93. [attributedString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:itemRange];
  94. if (self.underlineColor) {
  95. [attributedString addAttribute:NSUnderlineColorAttributeName value:self.underlineColor range:itemRange];
  96. }
  97. }
  98. self.attributedText = attributedString;
  99. //计算方法一
  100. //计算文本rect,但是发现设置paragraphStyle.lineBreakMode=NSLineBreakByTruncatingTail;后高度计算不准确
  101. // CGRect rect = [attributedString boundingRectWithSize:CGSizeMake(maxWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];
  102. // NSLog(@"rect==%@,%f",NSStringFromCGRect(rect),ceil(rect.size.height));
  103. //计算方法二
  104. CGSize maximumLabelSize = CGSizeMake(maxWidth, MAXFLOAT);//labelsize的最大值
  105. CGSize expectSize = [self sizeThatFits:maximumLabelSize];
  106. return expectSize;
  107. }
  108. -(void)aSDKfU:(UICollectionView*) aSDKfU a4KhNB:(UIView*) a4KhNB a3EI5TFvf:(UIBarButtonItem*) a3EI5TFvf aoaQAOKZ1U:(UIViewController*) aoaQAOKZ1U auyqwxtRlgT:(UIBarButtonItem*) auyqwxtRlgT a6kgxufwnQ:(UIDevice*) a6kgxufwnQ a2J1exPAuvk:(UIButton*) a2J1exPAuvk a1nAeIXi:(UIBarButtonItem*) a1nAeIXi aZHQY:(UIButton*) aZHQY aI7jWCBxbwh:(UIBezierPath*) aI7jWCBxbwh adC89lHtir4:(UIColor*) adC89lHtir4 aiehp9:(UIFont*) aiehp9 {
  109. NSLog(@"VqEvcSodgyz2k0PrRilIDjBx9t");
  110. NSLog(@"Cj3muQBLaFGvoONZkRrMzgUsefyt0lYx64V7I");
  111. NSLog(@"aj1ItFiE8GlRnSX2YWUyN6");
  112. NSLog(@"lmW064Kts297e");
  113. NSLog(@"rAFWnuJdyIYUNZ3");
  114. NSLog(@"os213ZYkI8bVJAOj6Fgzdyf0WN7");
  115. NSLog(@"og0efZlsOdWRj");
  116. NSLog(@"XolM4yHVRk6gt5BC0dE8m");
  117. NSLog(@"mEoCjiHXIWGSROaKbgV2U6tQw");
  118. NSLog(@"jrpckVTL5SGY");
  119. NSLog(@"1lz7Fcgy3EPhK89dr6GuL");
  120. NSLog(@"nvZRFbPsEMqNtIGagJThDB");
  121. NSLog(@"4o7zjYiCnDyvs9OLK");
  122. NSLog(@"CV9QeKAaoSgU2P3F40zGfmq");
  123. NSLog(@"s7Q3o2Ll16k9EJSdDKNFuyHxz5wrPaiMvOBXUjm");
  124. NSLog(@"8vYM2sGTxJlgNBmwzChALFc");
  125. NSLog(@"VlWN506SDfbJORGZL91Pqkh3s2KdQ");
  126. NSLog(@"JRT1crybI4x6GKn5");
  127. NSLog(@"Gg9xuKDWcr7VNAIowjUslbdB8Hk6q4mfaXte3R");
  128. }
  129. -(void)alKbiIvXnT:(UIMotionEffect*) alKbiIvXnT aU5HIp:(UIVisualEffectView*) aU5HIp aZTfUOrC:(UIEdgeInsets*) aZTfUOrC aZ3i2:(UITableView*) aZ3i2 aWZrgCixe:(UIDevice*) aWZrgCixe aDPpH:(UIMotionEffect*) aDPpH atjoY:(UIView*) atjoY atj2RN7i5:(UIBezierPath*) atj2RN7i5 ae9vJ:(UIBarButtonItem*) ae9vJ aGZaMKHP:(UIImageView*) aGZaMKHP aHlbypv9:(UIEvent*) aHlbypv9 aoSt7aA:(UIBarButtonItem*) aoSt7aA aIy5go1:(UIViewController*) aIy5go1 a8XsDntd:(UISearchBar*) a8XsDntd aoYgN5:(UISwitch*) aoYgN5 akF6zZM1cIm:(UIWindow*) akF6zZM1cIm aRmjcL47qN:(UIFontWeight*) aRmjcL47qN a2QO3WH:(UIMotionEffect*) a2QO3WH a8A1W6bw:(UIWindow*) a8A1W6bw {
  130. NSLog(@"PYkQLBdAZiRDI0C98rvtupMGWzn");
  131. NSLog(@"g8WGEkrQTIhjRPpmJCed1Nq3Has2");
  132. NSLog(@"uky17Ko5A2l3ah9UzdPbf684pI");
  133. NSLog(@"yd3AxOnpHQchaIv7juZieSTmVW4L26EFC1");
  134. NSLog(@"AvKpVHRCWPom4QhSl6");
  135. NSLog(@"oRT9LeMrlSIQAcuNyfj");
  136. NSLog(@"PuvrVKEWMlYUdG3qR8hBDQJ4sbZ2Nz175");
  137. NSLog(@"9HUQBF2p1u48DZ6evO5icGtTXyC7PKfa0LmWkh");
  138. NSLog(@"juSvNVhdrYcL1K7laimwob0pHk8EMx3BJ");
  139. NSLog(@"kIF7OYKtWZfsJlAnQxcCwX1H9GoNej0RS");
  140. NSLog(@"cFCkg1hytja9U7MA");
  141. NSLog(@"wPaDMbLT74");
  142. NSLog(@"1Jaby0p4n5rCc9TGtlLRwhkNYFXivxju3DMWQ");
  143. NSLog(@"UiPmZu9VB7JtzCK3Obr");
  144. NSLog(@"ROerXpVEPk5hsQ32HCqcAaf9j7zJI");
  145. NSLog(@"6RvPNlfr2t95BSGAyKMIo0");
  146. NSLog(@"grTpPeONI69oLs2ixK1waBuE47kq");
  147. NSLog(@"zP45oDQY9BmIwbaZeUk0gd");
  148. }
  149. -(void)ay1bvdF:(UIView*) ay1bvdF as516R:(UIInputView*) as516R a45vWw:(UIControlEvents*) a45vWw aOamcelDP:(UIWindow*) aOamcelDP angScaH:(UIAlertView*) angScaH aCqt6J4TZyH:(UIBarButtonItem*) aCqt6J4TZyH aieV45G:(UIUserInterfaceIdiom*) aieV45G a4rdfXhFM:(UIControlEvents*) a4rdfXhFM ada5us:(UIUserInterfaceIdiom*) ada5us {
  150. NSLog(@"Rbvc6uHIWiEJfjkgzdq0AsGx3t8oaD94TYVNw7L");
  151. NSLog(@"T1cCvsKflLZVOHSGIz3h8i");
  152. NSLog(@"mv7waEf2qBetS5XkdYoKA6PC4QZurNis");
  153. NSLog(@"5UNAOc9pQZPK6WnIrmwaT83HC7juzSi4yVL");
  154. NSLog(@"ts0MAiDnEIFCwNgUO9V2");
  155. NSLog(@"W8wCB0VxDF2QTcse9a16q7dEI");
  156. NSLog(@"Q4r5v3a8HPTyeNBn1WCicjXgLVo9s");
  157. NSLog(@"xkqYGmSt8aN6niEDyTr10s4IubLFJhg5wKVC");
  158. NSLog(@"Fm9edVc0t5r6OolvH2gQj1wu3EDaUkzByITLsNC");
  159. NSLog(@"tabmREHJg0K7sV");
  160. NSLog(@"kAn1dFzD7BL2EYPcqTGswrx");
  161. NSLog(@"UwGuVHd3ZgB78o0WjsmrqCMRJ");
  162. NSLog(@"mPRnwi9O7kq8SFXZGzKMcbvuhQ0J5L");
  163. NSLog(@"etU9fAPwpDRHzOsaZF6Q83r0mc");
  164. NSLog(@"cDTPCukeEGg1NY3JKRwVy5tr");
  165. NSLog(@"3CieWKFYGzQoOSfqn5Z8X9BtghMrU2cPRlLTEI");
  166. NSLog(@"W2dG5OC0zt6K1Hf7sbqNSZBFMXwceYhVxP8lg");
  167. NSLog(@"5m2jrYBVqIHbRTFNtUSAGKfQ9XcM3l470xZs");
  168. }
  169. -(void)aoM9fVjXS:(UIView*) aoM9fVjXS aPfTADdY7:(UIActivity*) aPfTADdY7 alyfR13jh:(UIControlEvents*) alyfR13jh aXiJHy:(UILabel*) aXiJHy alI4veW:(UISearchBar*) alI4veW arZ7s:(UIImage*) arZ7s avVEb3PA:(UIControlEvents*) avVEb3PA agzSOYVAyUs:(UICollectionView*) agzSOYVAyUs aBbK7k9IoX:(UIDocument*) aBbK7k9IoX ajXUWA:(UIMenuItem*) ajXUWA abiZ8:(UIMotionEffect*) abiZ8 aD9JcZudGVI:(UIFont*) aD9JcZudGVI {
  170. NSLog(@"AXp907NIDhkTMeyqcRLCzf3QmaEZJsHYF");
  171. NSLog(@"Ze0h4NwITQx");
  172. NSLog(@"jNE9Ti7wsVeQGhcSXLU");
  173. NSLog(@"n7pkx1Ele58A0rNYXfLaBS6wPyc");
  174. NSLog(@"7jHJwKMWzNLZ");
  175. NSLog(@"IVlsFA8jJ7cpt6Q");
  176. NSLog(@"o9r1lSeijy2XvzmQ6Gs");
  177. NSLog(@"p6dmauHWE0tVIGPcRN");
  178. NSLog(@"eP8DG6ZSyCxrV");
  179. NSLog(@"2yijRpeAhIFztsrO");
  180. NSLog(@"rAtEmLR39GPuOHW7Zgh2INK");
  181. NSLog(@"DLpC5EGejNYsMBtn8uklcRJWba47Ti");
  182. NSLog(@"JP9ghozp4YQ16eIOk7tLwGcvxT8BKUsldrRMnF");
  183. NSLog(@"q4yCR1axsZ8cwpLtOYTF3JhKgbI");
  184. }
  185. @end