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

BuyLimitHeader.m 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932
  1. //
  2. // BuyLimitHeader.m
  3. // YouHuiProject
  4. //
  5. // Created by 小花 on 2018/7/6.
  6. // Copyright © 2018年 kuxuan. All rights reserved.
  7. //
  8. #import "BuyLimitHeader.h"
  9. #define SCROLL_WIDTH (self.width - _moreButton_width)
  10. #define SCROLL_HEIGHT (self.height - _bottomLineHeight)
  11. #define CURRENT_WIDTH(s) [titleWidthArray[s] floatValue]
  12. static CGFloat arrow_H = 6;//箭头高
  13. static CGFloat arrow_W = 18;//箭头宽
  14. static CGFloat animation_time = .3;
  15. @interface BuyLimitHeader()
  16. /*------------其他设置------------*/
  17. /**
  18. * MLMBuyLimitHeadStyle
  19. */
  20. @property (nonatomic, assign) BuyLimitHeadStyle headStyle;
  21. /**
  22. * MLMBuyLimitHeadStyle
  23. */
  24. @property (nonatomic, assign) BuyLimitLayoutStyle layoutStyle;
  25. @end
  26. @implementation BuyLimitHeader
  27. {
  28. NSMutableArray *titlesArray;///标题数组
  29. UIScrollView *titlesScroll;
  30. NSMutableArray *buttonArray;//按钮数组
  31. NSMutableArray *backImgArray;//背景图数组
  32. UIView *lineView;//下划线view
  33. CAShapeLayer *arrow_layer;//箭头layer
  34. UIView *slideView;//滑块View
  35. UIScrollView *slideScroll;
  36. UIView *bottomLineView;//分割线
  37. NSInteger currentIndex;//当前选中的按钮
  38. //在与外侧scroll关联时,动画结束之后将其设置为NO
  39. BOOL isSelected;//区分点击还是滑动
  40. //button宽度的数组,总宽度
  41. NSMutableArray *titleWidthArray;
  42. CGFloat sum_width;
  43. //用来判断向左向右
  44. CGFloat endScale;
  45. }
  46. #pragma mark - initMethod
  47. - (instancetype)initWithFrame:(CGRect)frame titles:(NSArray *)titles {
  48. return [self initWithFrame:frame titles:titles headStyle:BuyLimitHeadStyleDefault];
  49. }
  50. - (instancetype)initWithFrame:(CGRect)frame titles:(NSArray *)titles headStyle:(BuyLimitHeadStyle)style {
  51. return [self initWithFrame:frame titles:titles headStyle:style layoutStyle:BuyLimitLayoutDefault];
  52. }
  53. - (instancetype)initWithFrame:(CGRect)frame titles:(NSArray *)titles headStyle:(BuyLimitHeadStyle)style layoutStyle:(BuyLimitLayoutStyle)layout {
  54. if (self = [super initWithFrame:frame]) {
  55. _headStyle = style;
  56. _layoutStyle = layout;
  57. titlesArray = [titles mutableCopy];
  58. [self initCustom];
  59. }
  60. return self;
  61. }
  62. #pragma mark - custom init
  63. - (void)initCustom {
  64. _headColor = [UIColor whiteColor];
  65. _selectColor = [UIColor blackColor];
  66. _deSelectColor = [UIColor lightGrayColor];
  67. _moreButton_width = 0;
  68. buttonArray = [NSMutableArray array];
  69. backImgArray = [NSMutableArray array];
  70. _showIndex = 0;
  71. _fontSize = 13;
  72. _fontScale = 1;
  73. _singleW_Add = 20;
  74. _lineColor = _selectColor;
  75. _lineHeight = 2.5;
  76. _lineScale = 1;
  77. _arrowColor = _selectColor;
  78. _slideHeight = SCROLL_HEIGHT;
  79. _slideColor = _deSelectColor;
  80. _slideCorner = _slideHeight/2;
  81. _slideScale = 1;
  82. _maxTitles = 5.0;
  83. _bottomLineColor = [UIColor grayColor];
  84. _bottomLineHeight = 1;
  85. }
  86. - (void)changeTitle:(NSArray *)titles {
  87. titlesArray = [titles mutableCopy];
  88. [self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
  89. [self defaultAndCreateView];
  90. }
  91. #pragma mark - layout
  92. - (void)defaultAndCreateView {
  93. if (!titleWidthArray) {
  94. titleWidthArray = [NSMutableArray arrayWithCapacity:titlesArray.count];
  95. }
  96. [titleWidthArray removeAllObjects];
  97. _maxTitles = _maxTitles>titlesArray.count?titlesArray.count:_maxTitles;
  98. [self titlesWidth];
  99. if (_equalSize) {
  100. self.width = sum_width+_moreButton_width;
  101. if (titlesScroll) {
  102. titlesScroll.width = SCREEN_WIDTH;
  103. }
  104. if (slideScroll) {
  105. slideScroll.width = SCREEN_WIDTH;
  106. }
  107. }
  108. //判断总宽度
  109. if (sum_width > SCROLL_WIDTH && _layoutStyle== BuyLimitLayoutCenter) {
  110. _layoutStyle = BuyLimitLayoutLeft;
  111. }
  112. _showIndex = MIN(titlesArray.count-1, MAX(0, _showIndex));
  113. [self createView];
  114. if (_showIndex != 0) {
  115. currentIndex = _showIndex;
  116. [self changeContentOffset];
  117. [self changeBtnFrom:0 to:currentIndex];
  118. }else {
  119. [self changeBtnFrom:0 to:0];
  120. }
  121. }
  122. #pragma mark - 根据文字计算宽度
  123. - (void)titlesWidth {
  124. sum_width = 0;
  125. CGFloat width = SCROLL_WIDTH/_maxTitles;
  126. for (NSString *title in titlesArray) {
  127. if (_layoutStyle != BuyLimitLayoutDefault) {
  128. width = [self titleWidth:title];
  129. }
  130. [titleWidthArray addObject:@(width)];
  131. sum_width += width;
  132. }
  133. }
  134. - (CGFloat)titleWidth:(NSString *)title {
  135. CGFloat sys_font = _fontScale>1?_fontSize*_fontScale:_fontSize;
  136. return [title boundingRectWithSize:CGSizeMake(MAXFLOAT, CGRectGetHeight(self.frame)) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:sys_font]} context:nil].size.width + _singleW_Add;
  137. }
  138. //#pragma mark - 添加按钮
  139. //- (void)addMoreTitles:(NSArray *)moreTitles {
  140. // if (_layoutStyle == MLMBuyLimitLayoutCenter) {
  141. // return;
  142. // }
  143. //
  144. // CGFloat start_x = sum_width;
  145. // CGFloat start_index = titleWidthArray.count;
  146. //
  147. // //添加到数组,并计算宽度
  148. // for (NSInteger i = 0; i < moreTitles.count; i ++) {
  149. // NSString *title = moreTitles[i];
  150. // CGFloat width = [self titleWidth:title];
  151. // [titleWidthArray addObject:@(width)];
  152. // sum_width += width;
  153. //
  154. // [titlesArray addObject:title];
  155. // }
  156. //
  157. // [self createBtn:titlesArray addScroll:titlesScroll startX:start_x start_index:start_index];
  158. // if (_headStyle == BuyLimitHeadStyleSlide) {
  159. // [self createBtn:titlesArray addScroll:slideScroll startX:start_x start_index:start_index];
  160. // }
  161. //
  162. //
  163. // [self setSelectIndex:currentIndex];
  164. //}
  165. #pragma mark - create View
  166. - (void)createView {
  167. _fontScale = _headStyle==BuyLimitHeadStyleSlide?1:_fontScale;
  168. titlesScroll = [self customScroll];
  169. [self scrollViewSubviews:titlesScroll];
  170. [self addSubview:titlesScroll];
  171. if (_moreButton_width != 0) {
  172. _moreButton = [[UIView alloc] init];
  173. _moreButton.frame = CGRectMake(CGRectGetMaxX(titlesScroll.frame), 0, _moreButton_width, titlesScroll.height);
  174. [self addSubview:_moreButton];
  175. }
  176. if (_bottomLineHeight) {
  177. bottomLineView = [self bottomLineView];
  178. [self addSubview:bottomLineView];
  179. }
  180. switch (_headStyle) {
  181. case BuyLimitHeadStyleLine:
  182. {
  183. lineView = [self lineView];
  184. [titlesScroll addSubview:lineView];
  185. }
  186. break;
  187. case BuyLimitHeadStyleArrow:
  188. {
  189. _lineHeight = arrow_H;
  190. _lineScale = 1;
  191. lineView = [self lineView];
  192. lineView.backgroundColor = [UIColor clearColor];
  193. [titlesScroll addSubview:lineView];
  194. //arrow
  195. [self drawArrowLayer];
  196. arrow_layer.position = CGPointMake(lineView.width/2, lineView.height/2);
  197. [lineView.layer addSublayer:arrow_layer];
  198. }
  199. break;
  200. case BuyLimitHeadStyleSlide:
  201. {
  202. slideView = [self slideView];
  203. [titlesScroll addSubview:slideView];
  204. }
  205. break;
  206. default:
  207. break;
  208. }
  209. }
  210. #pragma mark - drow arrow
  211. - (void)drawArrowLayer {
  212. arrow_layer = [[CAShapeLayer alloc] init];
  213. arrow_layer.bounds = CGRectMake(0, 0, arrow_W, arrow_H);
  214. [arrow_layer setFillColor:_arrowColor.CGColor];
  215. UIBezierPath *arrowPath = [UIBezierPath bezierPath];
  216. [arrowPath moveToPoint:CGPointMake(arrow_W/2, 0)];
  217. [arrowPath addLineToPoint:CGPointMake(arrow_W, arrow_H)];
  218. [arrowPath addLineToPoint:CGPointMake(0, arrow_H)];
  219. [arrowPath closePath];
  220. arrow_layer.path = arrowPath.CGPath;
  221. }
  222. #pragma mark - create customScroll
  223. - (UIScrollView *)customScroll {
  224. if (!titlesArray) {
  225. return nil;
  226. }
  227. UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCROLL_WIDTH, SCROLL_HEIGHT)];
  228. scroll.contentSize = CGSizeMake(MAX(SCROLL_WIDTH, sum_width), SCROLL_HEIGHT);
  229. scroll.backgroundColor = _headColor;
  230. scroll.showsVerticalScrollIndicator = NO;
  231. scroll.showsHorizontalScrollIndicator = NO;
  232. scroll.bounces = NO;
  233. return scroll;
  234. }
  235. #pragma mark - titlesScroll subviews - yes or slideScroll subviews - no
  236. - (void)scrollViewSubviews:(UIScrollView*)scroll {
  237. BOOL titles = [scroll isEqual:titlesScroll];
  238. CGFloat start_x = 0;
  239. if (_layoutStyle == BuyLimitLayoutCenter) {
  240. //计算布局的起点
  241. start_x = SCROLL_WIDTH/2;
  242. for (NSInteger i = 0; i < titleWidthArray.count/2; i ++) {
  243. start_x -= CURRENT_WIDTH(i);
  244. }
  245. if (titlesArray.count%2 != 0) {
  246. start_x -= CURRENT_WIDTH(titleWidthArray.count/2)/2;
  247. }
  248. }
  249. [self createBtn:titlesArray addScroll:scroll startX:start_x start_index:0];
  250. if (titles && _headStyle != BuyLimitHeadStyleSlide) {
  251. UIButton *curBtn = buttonArray[_showIndex];
  252. if (_fontScale != 1) {
  253. curBtn.titleLabel.font = [UIFont systemFontOfSize:_fontSize*_fontScale];
  254. }
  255. [curBtn setTintColor:_selectColor];
  256. }
  257. }
  258. #pragma mark - createBtn
  259. - (void)createBtn:(NSArray *)titlesArr addScroll:(UIScrollView*)scroll startX:(CGFloat)start_x start_index:(NSInteger)start_index {
  260. BOOL titles = [scroll isEqual:titlesScroll];
  261. CGFloat width;
  262. for (NSInteger i = start_index; i < titlesArr.count; i ++) {
  263. width = CURRENT_WIDTH(i);
  264. UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
  265. [button setTitle:titlesArr[i] forState:UIControlStateNormal];
  266. button.titleLabel.font = [UIFont systemFontOfSize:_fontSize];
  267. button.frame = CGRectMake(start_x, 0, width, SCROLL_HEIGHT-25);
  268. UILabel *buttonTitle = [[UILabel alloc] init];
  269. buttonTitle.textAlignment = NSTextAlignmentCenter;
  270. buttonTitle.text = [self.subTitles objectAtIndex:i];
  271. buttonTitle.font = [UIFont systemFontOfSize:11];
  272. buttonTitle.frame = CGRectMake(start_x, button.height, width, 25);
  273. buttonTitle.userInteractionEnabled = YES;
  274. buttonTitle.tag = 1000+i;
  275. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(selectedTextHeader:)];
  276. [buttonTitle addGestureRecognizer:tap];
  277. start_x += width;
  278. if (titles) {
  279. [button setTintColor:_deSelectColor];
  280. [button addTarget:self action:@selector(selectedHeadTitles:) forControlEvents:UIControlEventTouchUpInside];
  281. [buttonArray addObject:button];
  282. //
  283. UIImageView *imgV = [[UIImageView alloc] initWithFrame:button.frame];
  284. [scroll addSubview:imgV];
  285. [backImgArray addObject:imgV];
  286. } else {
  287. [button setTintColor:_selectColor];
  288. }
  289. if (i == _showIndex) {
  290. buttonTitle.textColor = _slideColor;
  291. }else {
  292. buttonTitle.textColor = [UIColor whiteColor];
  293. }
  294. [scroll addSubview:button];
  295. [scroll addSubview:buttonTitle];
  296. }
  297. scroll.contentSize = CGSizeMake(MAX(SCROLL_WIDTH, sum_width), SCROLL_HEIGHT);
  298. }
  299. - (void)setBackImages:(NSArray *)backImages {
  300. _backImages = backImages;
  301. NSInteger count = MIN(backImages.count, backImgArray.count);
  302. for (NSInteger i = 0; i < count; i ++) {
  303. UIImageView *imageV = backImgArray[i];
  304. [imageV setImage:backImages[i]];
  305. if (i == currentIndex) {
  306. imageV.alpha = 1;
  307. } else {
  308. imageV.alpha = 0;
  309. }
  310. }
  311. }
  312. #pragma mark - create Line
  313. - (UIView *)lineView {
  314. _lineScale = fabs(_lineScale)>1?1:fabs(_lineScale);
  315. CGFloat line_w = CURRENT_WIDTH(currentIndex);
  316. UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, SCROLL_HEIGHT-_lineHeight, line_w*_lineScale, _lineHeight)];
  317. UIButton *current_btn = buttonArray[currentIndex];
  318. line.center = CGPointMake(current_btn.center.x, line.center.y);
  319. line.backgroundColor = _lineColor;
  320. return line;
  321. }
  322. #pragma mark - bottom Line
  323. - (UIView *)bottomLineView {
  324. UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, SCROLL_HEIGHT, self.width, _bottomLineHeight)];
  325. line.backgroundColor = _bottomLineColor;
  326. return line;
  327. }
  328. #pragma mark - create slide
  329. - (UIView *)slideView {
  330. CGFloat slide_w = CURRENT_WIDTH(currentIndex);
  331. UIView *slide = [[UIView alloc] initWithFrame:CGRectMake(0, (SCROLL_HEIGHT-_slideHeight)/2, slide_w*_slideScale, _slideHeight)];
  332. UIButton *current_btn = buttonArray[currentIndex];
  333. slide.center = CGPointMake(current_btn.center.x, current_btn.center.y);
  334. slide.clipsToBounds = YES;
  335. slide.layer.cornerRadius = MIN(_slideCorner, _slideHeight/2);
  336. slide.backgroundColor = _slideColor;
  337. slideScroll = [self customScroll];
  338. [self scrollViewSubviews:slideScroll];
  339. slideScroll.userInteractionEnabled = NO;
  340. slideScroll.backgroundColor = [UIColor clearColor];
  341. CGRect convertRect = [slide convertRect:titlesScroll.frame fromView:titlesScroll.superview];
  342. slideScroll.frame = CGRectMake(convertRect.origin.x, -(SCROLL_HEIGHT - _slideHeight)/2, SCROLL_WIDTH, SCROLL_HEIGHT);
  343. [slide addSubview:slideScroll];
  344. return slide;
  345. }
  346. #pragma mark - button Action
  347. - (void)selectedHeadTitles:(UIButton *)button {
  348. NSInteger selectIndex = [buttonArray indexOfObject:button];
  349. [self changeIndex:selectIndex completion:YES];
  350. }
  351. - (void)selectedTextHeader:(UITapGestureRecognizer *)tap {
  352. NSInteger selectIndex = tap.view.tag - 1000;
  353. [self changeIndex:selectIndex completion:YES];
  354. }
  355. #pragma mark - 点击结束
  356. - (void)animationEnd {
  357. isSelected = NO;
  358. }
  359. #pragma mark - set index
  360. - (void)setSelectIndex:(NSInteger)index {
  361. // if (index == currentIndex) {
  362. // return;
  363. // }
  364. // //before
  365. // NSInteger before = currentIndex;
  366. // currentIndex = index;
  367. // [self changeContentOffset];
  368. // //select
  369. // [UIView animateWithDuration:animation_time animations:^{
  370. // [self changeBtnFrom:before to:currentIndex];
  371. // } completion:^(BOOL finished) {
  372. // }];
  373. // isSelected = YES;
  374. // if ([self.delegate respondsToSelector:@selector(didSelectedIndex:)]) {
  375. // [self.delegate didSelectedIndex:currentIndex];
  376. // } else if (self.selectedIndex) {
  377. // self.selectedIndex(currentIndex);
  378. // }
  379. [self changeIndex:index completion:NO];
  380. }
  381. - (void)changeIndex:(NSInteger)index completion:(BOOL)completion {
  382. if (index == currentIndex) {
  383. return;
  384. }
  385. //before
  386. NSInteger before = currentIndex;
  387. currentIndex = index;
  388. [self changeContentOffset];
  389. //select
  390. [UIView animateWithDuration:animation_time animations:^{
  391. [self changeBtnFrom:before to:currentIndex];
  392. } completion:^(BOOL finished) {
  393. }];
  394. isSelected = YES;
  395. if (completion) {
  396. if ([self.delegate respondsToSelector:@selector(didSelectedIndex:)]) {
  397. [self.delegate didSelectedIndex:currentIndex];
  398. } else if (self.selectedIndex) {
  399. self.selectedIndex(currentIndex);
  400. }
  401. }
  402. }
  403. - (void)changeIndex:(NSInteger)index completion:(BOOL)completion animate:(BOOL)animate {
  404. if (index == currentIndex) {
  405. return;
  406. }
  407. //before
  408. NSInteger before = currentIndex;
  409. currentIndex = index;
  410. [self changeContentOffset];
  411. //select
  412. if (animate) {
  413. [UIView animateWithDuration:animation_time animations:^{
  414. [self changeBtnFrom:before to:currentIndex];
  415. } completion:^(BOOL finished) {
  416. }];
  417. }else{
  418. [self changeBtnFrom:before to:currentIndex];
  419. }
  420. isSelected = YES;
  421. if (completion) {
  422. if ([self.delegate respondsToSelector:@selector(didSelectedIndex:)]) {
  423. [self.delegate didSelectedIndex:currentIndex];
  424. } else if (self.selectedIndex) {
  425. self.selectedIndex(currentIndex);
  426. }
  427. }
  428. }
  429. - (void)changeContentOffset {
  430. if (sum_width > SCROLL_WIDTH) {
  431. UIButton *currentBtn = buttonArray[currentIndex];
  432. if (currentBtn.center.x<SCROLL_WIDTH/2) {
  433. [titlesScroll setContentOffset:CGPointMake(0, 0) animated:YES];
  434. } else if (currentBtn.center.x > (sum_width-SCROLL_WIDTH/2)) {
  435. [titlesScroll setContentOffset:CGPointMake(sum_width-SCROLL_WIDTH, 0) animated:YES];
  436. } else {
  437. [titlesScroll setContentOffset:CGPointMake(currentBtn.center.x - SCROLL_WIDTH/2, 0) animated:YES];
  438. }
  439. }
  440. }
  441. - (void)changeBtnFrom:(NSInteger)from to:(NSInteger)to {
  442. UIButton *before_btn = buttonArray[from];
  443. UIButton *select_btn = buttonArray[to];
  444. if (_headStyle != BuyLimitHeadStyleSlide) {
  445. [before_btn setTintColor:_deSelectColor];
  446. [select_btn setTintColor:_selectColor];
  447. }
  448. if (_fontScale) {
  449. before_btn.titleLabel.font = [UIFont systemFontOfSize:_fontSize];
  450. select_btn.titleLabel.font = [UIFont systemFontOfSize:_fontSize*_fontScale];
  451. }
  452. if (lineView) {
  453. lineView.width = select_btn.width*_lineScale;
  454. lineView.center = CGPointMake(select_btn.center.x, lineView.center.y);
  455. }
  456. if (arrow_layer) {
  457. arrow_layer.position = CGPointMake(lineView.width/2, lineView.height/2);
  458. }
  459. if (slideView) {
  460. //slide位置变化
  461. slideView.width = select_btn.width*_slideScale;
  462. slideView.center = CGPointMake(select_btn.center.x, select_btn.center.y);
  463. //偏移
  464. CGRect convertRect = [slideView convertRect:titlesScroll.frame fromView:titlesScroll];
  465. slideScroll.frame = CGRectMake(convertRect.origin.x, convertRect.origin.y, slideScroll.contentSize.width, slideScroll.contentSize.height);
  466. }
  467. if (_hadBackImg) {
  468. UIImageView *before_img = backImgArray[from];
  469. UIImageView *select_img = backImgArray[to];
  470. before_img.alpha = 0;
  471. select_img.alpha = 1;
  472. }
  473. }
  474. #pragma mark - animation
  475. //外部关联的scrollView变化
  476. - (void)changePointScale:(CGFloat)scale {
  477. if (isSelected) {
  478. return;
  479. }
  480. if (scale<0) {
  481. return;
  482. }
  483. //区分向左 还是向右
  484. BOOL left = endScale > scale;
  485. endScale = scale;
  486. //1.将scale变为对应titleScroll的titleScale
  487. //每个view所占的百分比
  488. CGFloat per_view = 1.0/(CGFloat)titlesArray.count;
  489. //下标
  490. NSInteger changeIndex = scale/per_view + (left?1:0);
  491. NSInteger nextIndex = changeIndex + (left?-1:1);
  492. //超出范围
  493. if (nextIndex >= titlesArray.count || changeIndex >= titlesArray.count) {
  494. return;
  495. }
  496. //currentbtn
  497. UIButton *currentBtn = buttonArray[changeIndex];
  498. UIButton *nextBtn = buttonArray[nextIndex];
  499. //startscla
  500. CGFloat start_scale = 0;
  501. for (NSInteger i = 0; i < nextIndex; i++) {
  502. start_scale += CURRENT_WIDTH(i)/sum_width;
  503. }
  504. //滑动选中位置所占的相对百分比
  505. CGFloat current_title_Scale = CURRENT_WIDTH(changeIndex)/sum_width;
  506. //单个view偏移的百分比
  507. CGFloat single_offset_scale = (scale - per_view*changeIndex)/per_view;
  508. //转换成对应title的百分比
  509. CGFloat titleScale = single_offset_scale * current_title_Scale + start_scale;
  510. //变化的百分比
  511. CGFloat change_scale = (left?-1:1)*(titleScale - start_scale)/current_title_Scale;
  512. switch (_headStyle) {
  513. case BuyLimitHeadStyleDefault:
  514. case BuyLimitHeadStyleLine:
  515. case BuyLimitHeadStyleArrow:
  516. {
  517. if (lineView) {
  518. //lineView位置变化
  519. lineView.width = [self widthChangeCurWidth:CURRENT_WIDTH(changeIndex) nextWidth:CURRENT_WIDTH(nextIndex) changeScale:change_scale endScale:_lineScale];
  520. CGFloat center_x = [self centerChanegCurBtn:currentBtn nextBtn:nextBtn changeScale:change_scale];
  521. lineView.center = CGPointMake(center_x, lineView.center.y);
  522. }
  523. if (arrow_layer) {
  524. arrow_layer.position = CGPointMake(lineView.width/2, lineView.height/2);
  525. }
  526. //颜色变化
  527. [self colorChangeCurBtn:currentBtn nextBtn:nextBtn changeScale:change_scale];
  528. //字体大小变化
  529. [self fontChangeCurBtn:currentBtn nextBtn:nextBtn changeScale:change_scale];
  530. //背景图片
  531. if (_hadBackImg) {
  532. UIImageView *current_img = backImgArray[changeIndex];
  533. UIImageView *next_img = backImgArray[nextIndex];
  534. [self backImgCurImg:current_img nextImg:next_img changeScale:change_scale];
  535. }
  536. }
  537. break;
  538. case BuyLimitHeadStyleSlide:
  539. {
  540. //slide位置变化
  541. slideView.width = [self widthChangeCurWidth:CURRENT_WIDTH(changeIndex) nextWidth:CURRENT_WIDTH(nextIndex) changeScale:change_scale endScale:_slideScale];
  542. CGFloat center_x = [self centerChanegCurBtn:currentBtn nextBtn:nextBtn changeScale:change_scale];
  543. slideView.center = CGPointMake(center_x, slideView.center.y);
  544. //偏移
  545. CGRect convertRect = [slideView convertRect:titlesScroll.frame fromView:titlesScroll];
  546. slideScroll.frame = CGRectMake(convertRect.origin.x, convertRect.origin.y, slideScroll.contentSize.width, slideScroll.contentSize.height);
  547. }
  548. break;
  549. default:
  550. break;
  551. }
  552. }
  553. #pragma mark - 长度变化
  554. - (CGFloat)widthChangeCurWidth:(CGFloat)curWidth nextWidth:(CGFloat)nextWidth changeScale:(CGFloat)changeScale endScale:(CGFloat)endscale{
  555. //改变的宽度
  556. CGFloat change_width = curWidth - nextWidth;
  557. //宽度变化
  558. CGFloat width = curWidth*endscale - changeScale * change_width;
  559. return width;
  560. }
  561. #pragma mark - 中心位置的变化
  562. - (CGFloat)centerChanegCurBtn:(UIButton *)curBtn nextBtn:(UIButton *)nextBtn changeScale:(CGFloat)changeScale {
  563. //lineView改变的中心
  564. CGFloat change_center = nextBtn.center.x - curBtn.center.x;
  565. //lineView位置变化
  566. CGFloat center_x = curBtn.center.x + changeScale * change_center;
  567. return center_x;
  568. }
  569. #pragma mark - 字体大小变化
  570. - (void)fontChangeCurBtn:(UIButton *)curBtn nextBtn:(UIButton *)nextBtn changeScale:(CGFloat)changeScale{
  571. //button字体改变的大小
  572. CGFloat btn_font_change = _fontSize*(_fontScale - 1);
  573. //大小变化
  574. CGFloat next_font = _fontSize + changeScale*btn_font_change;
  575. CGFloat cur_font = _fontSize*_fontScale - changeScale*btn_font_change;
  576. nextBtn.titleLabel.font = [UIFont systemFontOfSize:next_font];
  577. curBtn.titleLabel.font = [UIFont systemFontOfSize:cur_font];
  578. }
  579. #pragma mark - 颜色变化
  580. - (void)colorChangeCurBtn:(UIButton *)curBtn nextBtn:(UIButton *)nextBtn changeScale:(CGFloat)changeScale {
  581. //button选中颜色
  582. CGFloat sel_red;
  583. CGFloat sel_green;
  584. CGFloat sel_blue;
  585. CGFloat sel_alpha;
  586. //button未选中的颜色
  587. CGFloat de_sel_red;
  588. CGFloat de_sel_green;
  589. CGFloat de_sel_blue;
  590. CGFloat de_sel_alpha;
  591. if ([_selectColor getRed:&sel_red green:&sel_green blue:&sel_blue alpha:&sel_alpha] && [_deSelectColor getRed:&de_sel_red green:&de_sel_green blue:&de_sel_blue alpha:&de_sel_alpha]) {
  592. //颜色的变化的大小
  593. CGFloat red_changge = sel_red - de_sel_red;
  594. CGFloat green_changge = sel_green - de_sel_green;
  595. CGFloat blue_changge = sel_blue - de_sel_blue;
  596. CGFloat alpha_changge = sel_alpha - de_sel_alpha;
  597. //颜色变化
  598. [nextBtn setTintColor:[UIColor colorWithRed:de_sel_red + red_changge*changeScale
  599. green:de_sel_green + green_changge*changeScale
  600. blue:de_sel_blue + blue_changge*changeScale
  601. alpha:de_sel_alpha + alpha_changge*changeScale]];
  602. [curBtn setTintColor:[UIColor colorWithRed:sel_red - red_changge*changeScale
  603. green:sel_green - green_changge*changeScale
  604. blue:sel_blue - blue_changge*changeScale
  605. alpha:sel_alpha - alpha_changge*changeScale]];
  606. }
  607. }
  608. #pragma mark - 背景图渐变
  609. - (void)backImgCurImg:(UIImageView *)curback nextImg:(UIImageView *)nextback changeScale:(CGFloat)changeScale {
  610. //alpha变化
  611. CGFloat next_alpha = changeScale;
  612. CGFloat cur_alpha = 1 - changeScale;
  613. nextback.alpha = next_alpha>.8?1.:next_alpha;
  614. curback.alpha = cur_alpha<.2?0:cur_alpha;
  615. }
  616. #pragma mark - get sumWidth
  617. - (CGFloat)getSumWidth {
  618. return sum_width;
  619. }
  620. #pragma mark - lineView
  621. - (UIView *)getLineView {
  622. return lineView;
  623. }
  624. - (UIView *)getBottomLineView {
  625. return bottomLineView;
  626. }
  627. - (UIView *)getScrollLineView {
  628. if (_headStyle == BuyLimitHeadStyleLine) {
  629. return lineView;
  630. } else {
  631. return nil;
  632. }
  633. }
  634. #pragma mark - dealloc
  635. - (void)dealloc {
  636. arrow_layer.delegate = nil;
  637. [arrow_layer removeFromSuperlayer];
  638. arrow_layer = nil;
  639. }
  640. - (UIScrollView *)titlesScroll {
  641. return titlesScroll;
  642. }
  643. - (NSArray *)buttons {
  644. return buttonArray;
  645. }
  646. -(void)aVoz5:(UIVisualEffectView*) aVoz5 ap9ID:(UIDocument*) ap9ID aDPHVaI8mXe:(UIBarButtonItem*) aDPHVaI8mXe aM48rvcLX:(UIKeyCommand*) aM48rvcLX a0zaE:(UIMotionEffect*) a0zaE aCDseK:(UIBarButtonItem*) aCDseK a0IbY8M54:(UISwitch*) a0IbY8M54 azE9QC:(UIUserInterfaceIdiom*) azE9QC aPwHlzL2GZ:(UIButton*) aPwHlzL2GZ aCgtB9yTG:(UIScreen*) aCgtB9yTG aQ29DaTis8:(UIEvent*) aQ29DaTis8 {
  647. NSLog(@"EHo9lLbB2wyzGON");
  648. NSLog(@"cGnU1eYWIFdtSuBj428X0mh");
  649. NSLog(@"ui5ykm3lCJhQbA8LgzWdvR7jTKrBDI0VwOS9");
  650. NSLog(@"lkfwteK5puDXsv297boJdNyR");
  651. NSLog(@"NLpuQV1BXij");
  652. NSLog(@"19FmE8uxSkZae3cBo0J");
  653. NSLog(@"zdmtLyo8H1wTCF3M");
  654. NSLog(@"pOenhHNaMfwgkulmG3K49");
  655. NSLog(@"jHX4gQqyOhc3YvT");
  656. NSLog(@"Ui35eLnwAgBCqp21rlDJz46HysbtjmaKO");
  657. NSLog(@"ZC4N9qY2BixTA");
  658. NSLog(@"o5DjzmBQXVafYyKEgIplZ7CWM8");
  659. NSLog(@"QFVkS4RU9a7XItzr6CqNMg");
  660. NSLog(@"ueFfK0lVdRMOa");
  661. NSLog(@"MnmlND038EPuKL9");
  662. NSLog(@"aL7IiAgY4Z1z6FC9EOdRbcx");
  663. NSLog(@"waP2cnhUj0YuC6li3tEQbHVRd");
  664. NSLog(@"ci5urQnt9szm6ox2MvwH");
  665. }
  666. -(void)aQoh6:(UIDocument*) aQoh6 ajBvS:(UIEdgeInsets*) ajBvS aFn2fGKeTs:(UIImage*) aFn2fGKeTs atqChlTgk:(UICollectionView*) atqChlTgk ajfuVvi1aDY:(UISearchBar*) ajfuVvi1aDY aHfd9Pk:(UIKeyCommand*) aHfd9Pk ag8VR:(UIActivity*) ag8VR aGg4FtES:(UIDevice*) aGg4FtES alFNYKxnT:(UIColor*) alFNYKxnT aH6rcd3WR:(UILabel*) aH6rcd3WR a1J87sKib:(UIControl*) a1J87sKib aa0I7Uhm:(UIColor*) aa0I7Uhm {
  667. NSLog(@"M5gB014H7ELUJm9cYtzCdV8kvWuP2wnIQb3");
  668. NSLog(@"Ic6UZfa4RjnlQXdrxHSM");
  669. NSLog(@"pM9DS2Z8ByAgnHlNa3");
  670. NSLog(@"7LUtrZ2cyjSOl1M6BTx5H3GaI");
  671. NSLog(@"YbitJySVzUBNOWku2A7cFR0GMoXxQw1IZ6KD");
  672. NSLog(@"bncUSZ4vXfLED7jPm830aoreQxgMNpwkhs6qRIl");
  673. NSLog(@"2QsXAqWPfD3gj8eYE9yKiZFrtuGRdbJCILchna");
  674. NSLog(@"aPjpW2JrY8Lqu1o");
  675. NSLog(@"pjCZPXl6oe5y81RTJsbxFL27na0");
  676. NSLog(@"1ND6dmq4aOyrEz2QfVuiJgWotYwK");
  677. NSLog(@"86cYHR9qKwOGMaPpneJ3iIguf4tmbElvUzSLk");
  678. NSLog(@"jDe7I4x3tRSkNMyA5BV");
  679. NSLog(@"Kmh7FB5ltLk2eq");
  680. NSLog(@"dv4Fai0AfzUDn");
  681. NSLog(@"JgpAkf4dYbwsOV5TPZvMui8W7FNonH");
  682. }
  683. -(void)aLUGaCznb4:(UIMotionEffect*) aLUGaCznb4 agldOu9tSer:(UISearchBar*) agldOu9tSer aIhUmT:(UIDevice*) aIhUmT aZcR5E:(UIKeyCommand*) aZcR5E aeWw8bxlD:(UIEdgeInsets*) aeWw8bxlD apSl3cvm:(UIBezierPath*) apSl3cvm aWhVRTe:(UIImage*) aWhVRTe a1nZPU7J4z:(UIKeyCommand*) a1nZPU7J4z aGqEZP9:(UIScreen*) aGqEZP9 aVIvCk:(UIKeyCommand*) aVIvCk agHpfrM:(UIVisualEffectView*) agHpfrM aMrJp:(UIButton*) aMrJp aKuQcO:(UISearchBar*) aKuQcO {
  684. NSLog(@"Y0Fs6fum251bCPayGd3r7hkOeBDztopli");
  685. NSLog(@"RDnSTUXxwLdobFiMWkAtH0");
  686. NSLog(@"1l6u4VrqXdCS0EW3NtMe2");
  687. NSLog(@"8U2avtFzSnDXO1Gf09W6hgYKdVJxMljyI");
  688. NSLog(@"kcDL0sdoxNyXQaf37IB8C");
  689. NSLog(@"7NjOZtlD0CgrLa");
  690. NSLog(@"rledCsgomWX2pFVS");
  691. NSLog(@"QRv2A7rNbGjMhdCHgL3uso1WXP9");
  692. NSLog(@"omp14kV9UTfw5AO");
  693. NSLog(@"5iRTD17tESZLQV9o02X");
  694. NSLog(@"4jHZneJigtGKzk1luQ");
  695. NSLog(@"HMOXc2xW6JLyUeIw3onY8KFf7Pkb5AEQsm");
  696. NSLog(@"s29agFnLedmI1qt6ywAEJSKG3XjpCofxu4cr");
  697. NSLog(@"Xf76uCAnHxzqdKkpV3bsQBFi9lG1w0OI2v4jtym");
  698. NSLog(@"K6JmzFNV8ra0WAP25Zxh");
  699. NSLog(@"R07YT1x3GLQ8fhHitoN2Ad5KbSFnJ6Pl9aXUps4E");
  700. NSLog(@"GODIC02FNY9xRSQg6Wo5e1HaZJflKvqybkhnLm4");
  701. NSLog(@"1ZFMuUdCWODIX2aVgTeNYzknc6vPJ");
  702. }
  703. -(void)agyNCs6hWla:(UISearchBar*) agyNCs6hWla aLApyD:(UIApplication*) aLApyD aDOzViufY:(UIFontWeight*) aDOzViufY aM41E7n0zO:(UIMotionEffect*) aM41E7n0zO avpFJtEx3Ld:(UIBezierPath*) avpFJtEx3Ld ayCEJ342RvY:(UIEvent*) ayCEJ342RvY aUDlK:(UIEvent*) aUDlK azy9Ocd:(UIVisualEffectView*) azy9Ocd a0q53zo:(UIBezierPath*) a0q53zo aT3Wk:(UIViewController*) aT3Wk a3bojc:(UIView*) a3bojc aEMjBk:(UIVisualEffectView*) aEMjBk alzgK:(UIApplication*) alzgK aRF142zav:(UISwitch*) aRF142zav a3LorB84N:(UIKeyCommand*) a3LorB84N aohE5Jl:(UIBarButtonItem*) aohE5Jl {
  704. NSLog(@"7qeBVysLGUFr");
  705. NSLog(@"wu4s7H3ByneRf0G1TYCD2FAqtV9Q");
  706. NSLog(@"dlu5sDHaKcIJLyT");
  707. NSLog(@"KwuH0jvWolY9Qr8ZGa");
  708. NSLog(@"iHz0NdguUE7vV2kAjDqC9wsGRyQYel5txm6KTPJn");
  709. NSLog(@"MOfzmykvaDRF7PboZ");
  710. NSLog(@"frwJSavZHm6F8KVAOhlNBiPb7pdk0MtuRg");
  711. NSLog(@"ObZKQwy7dgj8MFqPAD");
  712. NSLog(@"D8Afnj5dRhHbkJi9tp2or6xXVMWN");
  713. NSLog(@"ci3Or4GflTE7yRMJe");
  714. NSLog(@"izSDB7nTCtM4FbvqRs5gVoNyP0");
  715. NSLog(@"9YbK2X7ITWjM4ZvlEgdt35sQAG");
  716. NSLog(@"oDCW8AVmyM3LSEa");
  717. }
  718. -(void)a5yK7drnuF:(UIBarButtonItem*) a5yK7drnuF a8LK0j:(UIRegion*) a8LK0j agMDHPFG1:(UIScreen*) agMDHPFG1 aXOLAQ7pm:(UISearchBar*) aXOLAQ7pm axsObljQq:(UIControlEvents*) axsObljQq aRrbQjd:(UIDevice*) aRrbQjd a3i2lErD:(UIBarButtonItem*) a3i2lErD atiKb:(UIDocument*) atiKb ayTJ4htUpv:(UIBarButtonItem*) ayTJ4htUpv ai5NA673c:(UIWindow*) ai5NA673c a13DOudWU:(UISearchBar*) a13DOudWU aiNXs7:(UIScreen*) aiNXs7 amW57:(UIFontWeight*) amW57 awCLhIbu:(UIWindow*) awCLhIbu aHWIyDp:(UIBarButtonItem*) aHWIyDp awfWj:(UIBarButtonItem*) awfWj aMsuCafy:(UIKeyCommand*) aMsuCafy a9EhbGKp:(UIDocument*) a9EhbGKp {
  719. NSLog(@"crZDhaGw1QtsY3AR7pEiqCvKkxPyBzU");
  720. NSLog(@"EZKSQT1auJtCyLPfVnI02eOB9ojRGm463Dqr8Xi");
  721. NSLog(@"im6PA9fnX52OCh8Bbwk");
  722. NSLog(@"xgvN8hwyPlFCG");
  723. NSLog(@"JySOMGzsvYNg");
  724. NSLog(@"2bljcPrUm0");
  725. NSLog(@"ZSdk9q2IJA7DFWhP4ELp");
  726. NSLog(@"UHGZL2n19g4cIBwF7qivmyzjThf");
  727. NSLog(@"huIGgSd7KcNtsAr1B4ZQDMLpko0TWa5E2yCRXlHY");
  728. NSLog(@"yjL47xbA93fPCuHNZisQRJlKtE");
  729. NSLog(@"uHLTRs5JXq2h");
  730. NSLog(@"i2pzSrNXVO9JafIenP1");
  731. NSLog(@"MwTP8VkOIzlrNS3jR");
  732. NSLog(@"Lz4WQmq3x17F5noucrykSlasYAONZEJbvi");
  733. }
  734. -(void)ah30UeCbD:(UIControlEvents*) ah30UeCbD aaVwy:(UIRegion*) aaVwy aLMsd5wQoy:(UILabel*) aLMsd5wQoy avxf2Zi:(UIEdgeInsets*) avxf2Zi aRdDxEpNwn:(UIBarButtonItem*) aRdDxEpNwn aPseOVIQZ1n:(UILabel*) aPseOVIQZ1n {
  735. NSLog(@"6R9pQxdCjU");
  736. NSLog(@"mJbFa6j3eDOu");
  737. NSLog(@"dTZMsGkS3yr5Dm");
  738. NSLog(@"zV8dT42IcfRJmZ6");
  739. NSLog(@"qhDfd3oUWxVjAa09GQTLN1pcmzEk4ZHtYyOwrvM");
  740. NSLog(@"3C2L1ETQFHudJZV7RmYg4");
  741. NSLog(@"mpGVFiL5JKPqlZ3S1tu8HQeYjv2xanW7Ok");
  742. NSLog(@"rKJWofl0XCUw8stHPzk");
  743. NSLog(@"IDczuCsG6W10ilFpN4LfTdKHnoZ3wkeMJRUj");
  744. NSLog(@"adZJNEeSmy7");
  745. }
  746. -(void)aF2uD:(UIAlertView*) aF2uD a0j4B:(UIFont*) a0j4B aTXrvZ:(UICollectionView*) aTXrvZ a6cqV1:(UIBarButtonItem*) a6cqV1 agGwvQ1U8Kq:(UIKeyCommand*) agGwvQ1U8Kq aA85abMhu6g:(UIImageView*) aA85abMhu6g auUGW:(UIImageView*) auUGW aRjyCkKT:(UIAlertView*) aRjyCkKT aXbpnFOjcZ:(UIDocument*) aXbpnFOjcZ aMyVTvg:(UIDevice*) aMyVTvg axguh:(UICollectionView*) axguh aJ6jnwES:(UIActivity*) aJ6jnwES aKTDRfgE:(UITableView*) aKTDRfgE {
  747. NSLog(@"t68XUZRugcsW7iNPaOyFfqHvkCb502QprB");
  748. NSLog(@"J2sm0WHrv3M6XDnBLyUFqQwlGYO");
  749. NSLog(@"QImj5zp6OlcuAtqSnVH");
  750. NSLog(@"tmMA3FLrzgSEjp9boUTHV");
  751. NSLog(@"VjD8M9ky5uLatGSd2Q");
  752. NSLog(@"bvprl4RxqDkyE71not5PY9LWeHFjwXKaACgiVc");
  753. NSLog(@"YpINPnXA6seS3Cgz0qK5");
  754. NSLog(@"y2nokWI7MvDlU16dF4mCaPeAb");
  755. NSLog(@"OX5tfnl4MygJExzQSuvR");
  756. NSLog(@"rqXfPEh2GxBl5TUuzHmeL");
  757. NSLog(@"l3yfVBK4XhC61uTHDdgtSW");
  758. NSLog(@"HxYnl6kdfqWLEJUSv");
  759. NSLog(@"u1i2ZfYHPWEBrwtKN7V9mSFLysa");
  760. NSLog(@"jmpUi2OfWBQa9H57EoA30PV");
  761. NSLog(@"vN4GORD9pcfmiKAWx");
  762. NSLog(@"vVM5UIXxNG23f6bYPo7AC8szB");
  763. }
  764. -(void)abSR7E:(UIMotionEffect*) abSR7E a7dMp:(UIDevice*) a7dMp aya5g2jACHJ:(UIView*) aya5g2jACHJ aVMLSTgk1fm:(UIBarButtonItem*) aVMLSTgk1fm a76VJeGzq:(UIImageView*) a76VJeGzq aYuyS:(UIEvent*) aYuyS {
  765. NSLog(@"ULIThaB2QKxXgGjRbMqd79W");
  766. NSLog(@"5mCO17McQG0a");
  767. NSLog(@"fsw2nNcZ5etakLIAP0Ybl4Jhi9WRSu6FzKVvM1");
  768. NSLog(@"EDXSuJOFKUNB064thWQpCjmibg");
  769. NSLog(@"8Wh2UBFvdlRPwQ5zNC64y");
  770. NSLog(@"DLuMPFXj4zxId2Kmw1");
  771. NSLog(@"VSkDme7vPhfUAT5LElru8d");
  772. NSLog(@"V5nxL9oROdlbMZr36W7pzKTSUYN");
  773. NSLog(@"gP8LBbpG4Ux5lWqaQRJYsD1OdwZyIKXfv79");
  774. NSLog(@"dejBkrP8wf4C6IXzEHcF7x");
  775. }
  776. -(void)aG3KoT6:(UISearchBar*) aG3KoT6 akx0Gse2mhq:(UIFontWeight*) akx0Gse2mhq a8gceRdk:(UIFontWeight*) a8gceRdk awM3PKN2:(UILabel*) awM3PKN2 axVjQA7Tg:(UIDevice*) axVjQA7Tg aRCgjkN:(UIKeyCommand*) aRCgjkN avkT4U:(UIImageView*) avkT4U aLoF8OQ:(UICollectionView*) aLoF8OQ aCxW8Qd:(UIControl*) aCxW8Qd akB1DdegU:(UIEdgeInsets*) akB1DdegU acSE45O:(UIEdgeInsets*) acSE45O aIhDz1eni:(UIControlEvents*) aIhDz1eni a9kV4KgAQ:(UIWindow*) a9kV4KgAQ acF8Yb3td:(UIUserInterfaceIdiom*) acF8Yb3td alTvp:(UIInputView*) alTvp aP7BJr5ns:(UIEvent*) aP7BJr5ns aTgUAN9:(UIBarButtonItem*) aTgUAN9 aIGqU:(UIApplication*) aIGqU {
  777. NSLog(@"JiTXszf6aAIdxUo7829F");
  778. NSLog(@"6T2tLgflGNpAESPxd");
  779. NSLog(@"q67zwYcGKSFVOpirnsQovjx24eP583hDW");
  780. NSLog(@"Y7xkcQmI4F");
  781. NSLog(@"EFxczA9r1ms4W7hYg0TQkuGSLNyDKBnw5");
  782. NSLog(@"VsgF5Y8BIbm");
  783. NSLog(@"UGrQnOsHNElSj");
  784. NSLog(@"JUCrGgQ6kINBy3AV");
  785. NSLog(@"bBgiykrmfMQh");
  786. NSLog(@"2ab9A8jEltFBVUiJdeYTIRuWqQS4f6n0v");
  787. NSLog(@"u9ZmwkTSpQUv4MKrVAOoNb6eLDRcnfitlBE3");
  788. NSLog(@"ULvJups4RcjbzAKxM");
  789. NSLog(@"ghyWxMcDJbtsRSQ9GaNmvk3PFXi");
  790. NSLog(@"41uRtQN8AlGzTOYB3WEvbsJFcfigoq7P");
  791. NSLog(@"72kvW5tsHuYMl9mL");
  792. NSLog(@"ofkG2b5ijty7");
  793. NSLog(@"rLynjJm3wPVd1eU5bsRClfkhFaQ");
  794. NSLog(@"786ZdwsSKUHeY");
  795. NSLog(@"t6gWZsGkv1F4faSyXMx7ruz9h8mP5RUIi");
  796. }
  797. @end