一折买app------返利---------返利宝

YZMAGoodDetailViewController.m 37KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934
  1. //
  2. // YZMAGoodDetailViewController.m
  3. // YouHuiProject
  4. //
  5. // Created by xiaoxi on 2018/1/22.
  6. // Copyright © 2018年 kuxuan. All rights reserved.
  7. //
  8. #import "YZMAGoodDetailViewController.h"
  9. #import <WebKit/WebKit.h>
  10. #import "YZMAGoodDetailRequestViewModel.h"
  11. #import "SDCycleScrollView.h"
  12. #import "YZMATableView.h"
  13. #import "YZMAGoodDetailBottomView.h"
  14. #import "YZMAGoodDetailView.h"
  15. #import "YZMACollectionView.h"
  16. #import "YZMAGoodCollectionCell2.h"
  17. #import "YZMAShopDetailViewController.h"
  18. #import <AlibcTradeSDK/AlibcTradeSDK.h>
  19. #import "YZMAHistoryTool.h"
  20. #import "YZMAHistoryModel.h"
  21. #import "YZMAGoodListViewController.h"
  22. #import "YZMALoginViewController.h"
  23. #import "YZMAAdWebViewController.h"
  24. #import "YZMAEventTool.h"
  25. #import "YZMAGotoDetailView.h"
  26. #import "YZMAShareGoodsViewController.h"
  27. #import "YZMAWebDetailController.h"
  28. #import "YZMALinkFansController.h"
  29. #import "YZMAPrivilegeReferralViewController.h"
  30. #import "YZMAModuleView.h"
  31. #import "YZMADetailHeaderTitle.h"
  32. #import "CCAlertShowView.h"
  33. #import "YZMAShareImgPopView.h"
  34. #import "YZMAShopInfoView.h"
  35. #import "YZMADetailGuideView.h"
  36. #import "PhoneLoginManager.h"
  37. #import "PhoneLoginManager.h"
  38. #define GoodSimilarViewHeight ((self.goodSimilarArr.count-1)/2+1)*FITSIZE(292)+FITSIZE(45)
  39. static CGFloat detailDescWebHeight = 0.1;
  40. static NSInteger const detailDescWebTag = 111;
  41. static NSString *const cellID = @"YZMAGoodCollectionCell";
  42. static NSString *const collectionViewHeader = @"collectionViewHeader";
  43. @interface YZMAGoodDetailViewController ()
  44. <
  45. SDCycleScrollViewDelegate,
  46. UITableViewDelegate,
  47. UITableViewDataSource,
  48. YHGoodDetailBottomViewDelegate,
  49. YHGoodDetailViewDelegate,
  50. UIWebViewDelegate,
  51. UICollectionViewDelegate,
  52. UICollectionViewDataSource,
  53. UICollectionViewDelegateFlowLayout,
  54. SGPageTitleViewDelegate,
  55. UIWebViewDelegate,
  56. WKNavigationDelegate
  57. >
  58. {
  59. NSInteger _page;
  60. }
  61. @property (nonatomic, strong) YZMAGoodDetailModel *goodModel;
  62. @property (nonatomic, strong) UITableView *tableView;
  63. @property (nonatomic, strong) WKWebView *detailDescWebView;
  64. @property (nonatomic, strong) UIView *tableHeaderView;
  65. @property (nonatomic, strong) YZMAGoodDetailView *goodDetailView;
  66. @property (nonatomic, strong) SDCycleScrollView *cycleView;
  67. @property (nonatomic, strong) NSArray *goodSimilarArr;
  68. @property (nonatomic, strong) UICollectionView *collectionView;
  69. @property (nonatomic, strong) UIButton *backButton;
  70. @property (nonatomic, strong) UIButton *shareButton;
  71. @property (nonatomic, strong) SGPageTitleView *topTitleView;
  72. @property (nonatomic, strong) YYFPSLabel *fpsLabel;
  73. @property (nonatomic, strong) YZMAGoodDetailBottomView *goodBottomView;
  74. @property (nonatomic, strong) NSNumber *flag;//用户等级 1 会员 2 超级会员 3 运营商
  75. @property (nonatomic, strong) YZMAModuleView *moduleView;
  76. @property (nonatomic, strong) YZMAShopInfoView *shopInfoView;
  77. @end
  78. @implementation YZMAGoodDetailViewController
  79. - (void)dealloc {
  80. [self.detailDescWebView removeObserver:self forKeyPath:@"scrollView.contentSize"];
  81. NSLog(@"释放了------------");
  82. }
  83. - (void)viewWillDisappear:(BOOL)animated {
  84. [super viewWillDisappear:animated];
  85. [SVProgressHUD dismiss];
  86. }
  87. - (void)viewDidLoad {
  88. [super viewDidLoad];
  89. [self initHUD];
  90. [self initNavBar];
  91. [self request];
  92. [self requestCount];
  93. }
  94. -(void)viewDidAppear:(BOOL)animated{
  95. [super viewDidAppear:animated];
  96. }
  97. - (void)configParam {
  98. _page = 1;
  99. }
  100. - (void)requestCount {
  101. [YZMAEventTool eventWithEventType:0 origin:self.eventModel.origin category_id:self.eventModel.category_id goods_id:self.requestModel.goods_id source:self.eventModel.source];
  102. }
  103. - (void)viewWillAppear:(BOOL)animated {
  104. [super viewWillAppear:animated];
  105. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
  106. self.navigationController.navigationBar.hidden = YES;
  107. }
  108. - (void)didReceiveMemoryWarning {
  109. [super didReceiveMemoryWarning];
  110. }
  111. - (void)initNavBar {
  112. [self.navigationBar setNavightionBarBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:0.0]];
  113. UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
  114. leftButton.frame = CGRectMake(0, 0, FITSIZE(22), FITSIZE(22));
  115. leftButton.backgroundColor = [UIColor clearColor];
  116. [leftButton setImage:[UIImage imageNamed:@"detail_back_g"] forState:UIControlStateNormal];
  117. [leftButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
  118. self.backButton = leftButton;
  119. [self.navigationBar setCustomLeftButtons:@[leftButton]];
  120. UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
  121. rightButton.frame = CGRectMake(0, 0, FITSIZE(22), FITSIZE(22));
  122. rightButton.backgroundColor = [UIColor clearColor];
  123. [rightButton setImage:[UIImage imageNamed:@"detail_share_g"] forState:UIControlStateNormal];
  124. [rightButton addTarget:self action:@selector(shareAction) forControlEvents:UIControlEventTouchUpInside];
  125. self.shareButton = rightButton;
  126. [self.navigationBar setCustomRightButtons:@[rightButton]];
  127. [self.navigationBar addSubview:self.topTitleView];
  128. }
  129. - (void)initSubviews {
  130. __weak typeof(self) weakSelf = self;
  131. //底部栏
  132. YZMAGoodDetailBottomView *bottomView = [[YZMAGoodDetailBottomView alloc] initWithFrame:CGRectMake(0, kScreenHeight-FITSIZE(55)-BottomMargin, kScreenWidth, FITSIZE(55))];
  133. bottomView.delegate = self;
  134. bottomView.goodModel = self.goodModel;
  135. [self.view addSubview:bottomView];
  136. self.goodBottomView = bottomView;
  137. //轮播
  138. SDCycleScrollView *cycleView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 0, FITSIZE(375), FITSIZE(375)) delegate:self placeholderImage:[UIImage imageNamed:@""]];
  139. cycleView.imageURLStringsGroup = self.goodModel.small_img;
  140. cycleView.currentPageDotImage = [UIImage imageNamed:@"page_sel"];
  141. cycleView.pageDotImage = [UIImage imageNamed:@"page_nor"];
  142. self.cycleView = cycleView;
  143. //商品信息
  144. self.goodDetailView = [[YZMAGoodDetailView alloc] initWithFrame:CGRectMake(0, cycleView.height, kScreenWidth, FITSIZE(140))];
  145. self.goodDetailView.delegate = self;
  146. self.goodDetailView.goodModel = self.goodModel;
  147. YZMADetailGuideView *guide = [[YZMADetailGuideView alloc] initWithFrame:CGRectMake(0, self.goodDetailView.bottom, SCREEN_WIDTH, 35)];
  148. guide.tapAction = ^{
  149. YZMAPrivilegeReferralViewController *Privilege = [[YZMAPrivilegeReferralViewController alloc] init];
  150. [weakSelf.navigationController pushViewController:Privilege animated:YES];
  151. };
  152. guide.height = 0;//省钱快报不需要展示
  153. //店铺信息
  154. YZMAShopModel *model = self.goodModel.shop;
  155. CGFloat shopViewHeight = model==nil?0:Fitsize(68);
  156. self.shopInfoView = [[YZMAShopInfoView alloc] initWithFrame:CGRectMake(0, guide.bottom+5, SCREEN_WIDTH, shopViewHeight) shopModel:model];
  157. //推荐模块
  158. UIView *moduleBg = [[UIView alloc] initWithFrame:CGRectMake(0, self.shopInfoView.bottom+5, SCREEN_WIDTH, Fitsize(202))];
  159. YZMADetailHeaderTitle *headerTitle = [[YZMADetailHeaderTitle alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, Fitsize(34)) title:@"相关推荐" titleImg:@"goodsdetail_recommend" color:[UIColor YHColorWithHex:0x62E4AC]];
  160. [moduleBg addSubview:headerTitle];
  161. self.moduleView = [[YZMAModuleView alloc] initWithFrame:CGRectMake(0, headerTitle.height, SCREEN_WIDTH, moduleBg.height-Fitsize(34))];
  162. self.moduleView.didSelectedGood = ^(YZMAChildGoodModel *model) {
  163. DetailRequestModel *requestModel = [[DetailRequestModel alloc] initWithChildModel:model];
  164. YZMAGoodDetailViewController *detail = [[YZMAGoodDetailViewController alloc] init];
  165. detail.requestModel = requestModel;
  166. YZMAEventModel *evevtModel = [[YZMAEventModel alloc] initWithOrigin:model.origin category_id:@"0" source:goodsDetailTopRecommendAction];
  167. detail.eventModel = evevtModel;
  168. [weakSelf.navigationController pushViewController:detail animated:YES];
  169. [MobClick event:GoodsDetailRecommend];
  170. };
  171. [moduleBg addSubview:self.moduleView];
  172. self.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, moduleBg.bottom+5)];
  173. //详情webview
  174. YZMADetailHeaderTitle *detailHeader = [[YZMADetailHeaderTitle alloc] initWithFrame:CGRectMake(0, moduleBg.bottom+5, SCREEN_WIDTH, Fitsize(34)) title:@"宝贝详情" titleImg:@"goodsdetail_detail" color:[UIColor YHColorWithHex:0x628AE4]];
  175. _detailDescWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, detailHeader.bottom, kScreenWidth, detailDescWebHeight)];
  176. _detailDescWebView.tag = detailDescWebTag;
  177. _detailDescWebView.navigationDelegate = self;
  178. _detailDescWebView.scrollView.scrollEnabled = NO;
  179. // _detailDescWebView.scalesPageToFit = YES;
  180. NSURL *url = [NSURL URLWithString:self.goodModel.detail_url];
  181. NSURLRequest *request = [NSURLRequest requestWithURL:url];
  182. [_detailDescWebView loadRequest:request];
  183. [self.tableHeaderView addSubview:cycleView];
  184. [self.tableHeaderView addSubview:self.goodDetailView];
  185. [self.tableHeaderView addSubview:guide];
  186. [self.tableHeaderView addSubview:self.shopInfoView];
  187. [self.tableHeaderView addSubview:moduleBg];
  188. [self.tableHeaderView addSubview:detailHeader];
  189. [self.tableHeaderView addSubview:_detailDescWebView];
  190. self.tableView.tableHeaderView = self.tableHeaderView;
  191. [self.view addSubview:self.tableView];
  192. [self.view bringSubviewToFront:self.navigationBar];
  193. @try{
  194. [self.detailDescWebView removeObserver:self forKeyPath:@"scrollView.contentSize"];
  195. }@catch (NSException *exception) {
  196. }
  197. //添加监听
  198. [_detailDescWebView addObserver:self forKeyPath:@"scrollView.contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
  199. [self.view bringSubviewToFront:self.navigationBar];
  200. [YZMAGoodDetailRequestViewModel requestGoodSimilarParamGoods_id:self.requestModel.goods_id page:@(_page) success:^(NSArray *array) {
  201. if (array.count > 0) {
  202. self.goodSimilarArr = array;
  203. self.tableView.tableFooterView = self.collectionView;
  204. }
  205. } failure:^(NSError *error) {
  206. }];
  207. }
  208. - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
  209. if ([keyPath isEqualToString:@"scrollView.contentSize"]) {
  210. id height = [change valueForKey:NSKeyValueChangeNewKey];
  211. CGSize size;
  212. [(NSValue *)height getValue:&size];
  213. if (detailDescWebHeight != size.height) {
  214. detailDescWebHeight = size.height;
  215. self.detailDescWebView.height = size.height;
  216. self.tableHeaderView.height = self.detailDescWebView.top+size.height;
  217. self.tableView.tableHeaderView = self.tableHeaderView;
  218. }
  219. }
  220. }
  221. - (void)backAction {
  222. [self.navigationController popViewControllerAnimated:YES];
  223. }
  224. -(void)shareAction{
  225. [self yh_GoodDetailBottomViewClickCommissionButton];
  226. }
  227. #pragma mark - HUD
  228. - (void)initHUD {
  229. [SVProgressHUD setDefaultStyle:SVProgressHUDStyleCustom];
  230. [SVProgressHUD setForegroundColor:[UIColor YHColorWithHex:0xff2420]];
  231. [SVProgressHUD setBackgroundColor:[UIColor YHColorWithHex:0xf5f4f4]];
  232. }
  233. #pragma mark - request
  234. - (void)request {
  235. [SVProgressHUD show];
  236. [YZMAGoodDetailRequestViewModel requestGoodDetailParamGoods_id:self.requestModel success:^(YZMAGoodDetailModel *model,NSDictionary *dic) {
  237. if (model) {
  238. self.goodModel = model;
  239. [self initSubviews];
  240. [self requestUserIdentity];
  241. [self requestThressRecommon];
  242. [self saveGoodsInfoAsBrowserHistoryWith:dic];
  243. }
  244. [SVProgressHUD dismiss];
  245. } failure:^(NSError *error) {
  246. [SVProgressHUD dismiss];
  247. [MBProgressHUD showMessage:@"加载失败"];
  248. }];
  249. }
  250. /**
  251. 加载上部相关推荐
  252. */
  253. - (void)requestThressRecommon {
  254. NSString *url = [NSString stringWithFormat:@"%@/api/v2/goods/recommendtop",BaseURL];
  255. NSDictionary *para = @{@"goods_id":self.requestModel.goods_id};
  256. [YZMAHttp post:url params:para success:^(id json) {
  257. NSArray *list = [NSArray yy_modelArrayWithClass:[YZMAChildGoodModel class] json:json[@"data"]];
  258. [self.moduleView setRecommonData:list];
  259. } failure:^(NSError *error) {
  260. }];
  261. }
  262. - (void)requestUserIdentity {
  263. NSString *url=[NSString stringWithFormat:@"%@/api/v2/adzoneCreate/userIdentity",BaseURL];
  264. [YZMAHttp post:url params:nil success:^(id json) {
  265. if (json[@"data"]) {
  266. NSNumber *flag=json[@"data"][@"flag"];
  267. self.flag=flag;
  268. }
  269. } failure:^(NSError *error) {
  270. self.flag=0;
  271. }];
  272. }
  273. /**
  274. 保存浏览记录
  275. */
  276. - (void)saveGoodsInfoAsBrowserHistoryWith:(NSDictionary *)dic {
  277. if (![AccountTool isLogin]) {
  278. return;
  279. }
  280. NSString *urlString = [NSString stringWithFormat:@"%@/api/v2/brower/record", BaseURL];
  281. NSDictionary *para = [self.requestModel modelToDictionary];
  282. [YZMAHttp post:urlString params:para success:^(id json) {
  283. } failure:^(NSError *error) {
  284. }];
  285. }
  286. #pragma mark - scrollView
  287. - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  288. CGFloat offsetY = scrollView.contentOffset.y;
  289. // CGFloat standard = FITSIZE(734)-NavBarHeight;
  290. CGFloat standard = self.cycleView.height-NavBarHeight;
  291. if (offsetY > -standard && offsetY < standard) {
  292. [self.navigationBar setNavightionBarBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:offsetY/standard]];
  293. self.topTitleView.alpha = offsetY/standard;
  294. if (offsetY/standard < 0.5) {
  295. [self.backButton setImage:[UIImage imageNamed:@"detail_back_g"] forState:UIControlStateNormal];
  296. self.backButton.alpha = 1-offsetY/standard;
  297. [self.shareButton setImage:[UIImage imageNamed:@"detail_share_g"] forState:UIControlStateNormal];
  298. self.shareButton.alpha = 1-offsetY/standard;
  299. }
  300. else {
  301. [self.backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
  302. self.backButton.alpha = offsetY/standard;
  303. [self.shareButton setImage:[UIImage imageNamed:@"detail_share_w"] forState:UIControlStateNormal];
  304. self.shareButton.alpha = offsetY/standard;
  305. }
  306. }
  307. else {
  308. }
  309. if (offsetY >= standard) {
  310. [self.navigationBar setShowNavigationBarBottomLine:YES];
  311. } else {
  312. [self.navigationBar setShowNavigationBarBottomLine:NO];
  313. }
  314. //设置导航栏头部seg下标
  315. CGFloat indexOneHeight = self.moduleView.superview.bottom+5-NavBarHeight;
  316. CGFloat indexTwoHeight = self.tableHeaderView.height-NavBarHeight;
  317. if (offsetY < indexOneHeight) {
  318. self.topTitleView.newSelectedIndex = 0;
  319. }else if (offsetY>=indexOneHeight && offsetY<indexTwoHeight){
  320. self.topTitleView.newSelectedIndex = 1;
  321. }else {
  322. self.topTitleView.newSelectedIndex = 2;
  323. }
  324. }
  325. #pragma mark - topTitleViewDelegate
  326. - (void)pageTitleView:(SGPageTitleView *)pageTitleView selectedIndex:(NSInteger)selectedIndex {
  327. CGFloat indexOneHeight = self.moduleView.superview.bottom+5-NavBarHeight;
  328. CGFloat indexTwoHeight = self.tableHeaderView.height-NavBarHeight;
  329. switch (selectedIndex) {
  330. case 0:
  331. [self.tableView setContentOffset:CGPointMake(0, 0) animated:NO];
  332. break;
  333. case 1:
  334. [self.tableView setContentOffset:CGPointMake(0, indexOneHeight) animated:NO];
  335. break;
  336. case 2:
  337. [self.tableView setContentOffset:CGPointMake(0, indexTwoHeight) animated:NO];
  338. break;
  339. default:
  340. break;
  341. }
  342. }
  343. #pragma mark - goodDetailBottomViewDelegate
  344. /**
  345. 分享
  346. */
  347. - (void)yh_GoodDetailBottomViewClickCommissionButton {
  348. if ([AccountTool isLogin]) {
  349. YZMAShareImgPopView *shareView = [[YZMAShareImgPopView alloc] initWithFrame:self.view.bounds goodModel:self.goodModel];
  350. CCAlertShowView *showView = [CCAlertShowView showAlertViewWithView:shareView backgroundDismissEnable:YES];
  351. shareView.closeAction = ^{
  352. [showView dismiss];
  353. };
  354. showView.backgroundView.backgroundColor = [UIColor clearColor];
  355. [showView show];
  356. }else{
  357. YZMALoginViewController *login = [[YZMALoginViewController alloc] init];
  358. login.loginSucc = ^{
  359. [self request];
  360. };
  361. [self.navigationController presentViewController:login animated:YES completion:nil];
  362. }
  363. }
  364. - (void)yh_GoodDetailBottomViewClickCollectButton {
  365. if ([AccountTool isLogin]) {
  366. [MobClick event:collection_count];
  367. NSString *coupon_start_time = [self.goodModel.is_coupon boolValue] ? self.requestModel.coupon_start_time : @"";
  368. NSString *coupon_end_time = [self.goodModel.is_coupon boolValue] ? self.requestModel.coupon_end_time : @"";
  369. NSNumber *is_coupon = self.goodModel.is_coupon;
  370. NSString *coupon_price = self.goodModel.coupon_price;
  371. NSString *price = self.goodModel.price;
  372. NSString *discount_price = self.goodModel.discount_price;
  373. NSString *commission_rate = self.goodModel.commission_rate;
  374. if (!coupon_start_time) coupon_start_time = @"";
  375. if (!coupon_end_time) coupon_end_time = @"";
  376. if (!is_coupon) is_coupon = @0;
  377. if (!coupon_price) coupon_price = @"";
  378. if (!price) price = @"";
  379. if (!discount_price) discount_price = @"";
  380. if (!commission_rate) commission_rate = @"";
  381. NSDictionary *para = @{@"goods_id":self.goodModel.goods_id,
  382. @"is_coupon":is_coupon,
  383. @"coupon_price":coupon_price,
  384. @"price":price,
  385. @"discount_price":discount_price,
  386. @"commission_rate":commission_rate,
  387. @"coupon_end_time":coupon_end_time,
  388. @"coupon_start_time":coupon_start_time
  389. };
  390. [YZMAGoodDetailRequestViewModel requestCollectGoodParamGoods_id:para success:^(NSString *msg) {
  391. [SVProgressHUD showSuccessWithStatus:msg];
  392. if ([msg isEqualToString:@"收藏成功"]) {
  393. self.goodModel.is_favorites = @1;
  394. self.goodBottomView.collectButton.selected = YES;
  395. }
  396. else {
  397. self.goodModel.is_favorites = @0;
  398. self.goodBottomView.collectButton.selected = NO;
  399. }
  400. } failure:^(NSError *error) {
  401. }];
  402. }
  403. else {
  404. YZMALoginViewController *login = [[YZMALoginViewController alloc] init];
  405. login.loginSucc = ^{
  406. [self request];
  407. };
  408. [self.navigationController presentViewController:login animated:YES completion:nil];
  409. }
  410. }
  411. /**
  412. 跳到淘宝领券
  413. */
  414. - (void)yh_GoodDetailBottomViewClickBuyButton {
  415. [self getTicketTaoBaoUrl];
  416. }
  417. /**
  418. 获取商品链接
  419. */
  420. - (void)getTicketTaoBaoUrl {
  421. [self goBuy];
  422. [MobClick event:pay_count];
  423. // if (![AccountTool account]) {
  424. // YZMALoginViewController *login = [[YZMALoginViewController alloc] init];
  425. // [self presentViewController:login animated:YES completion:nil];
  426. // return;
  427. // }
  428. //
  429. //
  430. //
  431. // if ([self.flag integerValue]==1) {
  432. // UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"升级赚佣金" message:[NSString stringWithFormat:@"\n成为超级会员后,您购买商品就可以拿到%.2f元佣金哦~",[self.goodModel.super_commission_price floatValue]] preferredStyle:UIAlertControllerStyleAlert];
  433. // UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"直接领劵" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
  434. // [self goBuy];
  435. //
  436. // }];
  437. // UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"成为超级会员" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
  438. // YZMAPrivilegeReferralViewController *vc=[[YZMAPrivilegeReferralViewController alloc]init];
  439. // vc.flag=@(1);
  440. // vc.isSuper=@(0);
  441. // [self.navigationController pushViewController:vc animated:YES];
  442. // }];
  443. // [alert addAction:defaultAction];
  444. // [alert addAction:cancelAction];
  445. // [self presentViewController:alert animated:YES completion:nil];
  446. // return;
  447. // }else{
  448. // [self goBuy];
  449. // }
  450. }
  451. -(void)goBuy{
  452. [SVProgressHUD show];
  453. NSDictionary *param = @{@"goods_id":self.requestModel.goods_id,
  454. @"is_coupon":self.requestModel.is_coupon,
  455. @"category_id":(self.eventModel.category_id==nil?@"":self.eventModel.category_id),
  456. @"path":(self.eventModel.source==nil?@"":self.eventModel.source)
  457. };
  458. NSString *url = [NSString stringWithFormat:@"%@/api/v2/adzoneCreate/orderDown",BaseURL];
  459. [YZMAHttp post:url params:param success:^(id json) {
  460. if (url.length > 0) {
  461. [self jumpToTaobaoWithGoodsUrl:json[@"url"]];
  462. }
  463. [SVProgressHUD dismiss];
  464. } failure:^(NSError *error) {
  465. [SVProgressHUD dismiss];
  466. [MBProgressHUD showMessage:@"加载失败"];
  467. }];
  468. }
  469. - (void)jumpToTaobaoWithGoodsUrl:(NSString *)url {
  470. [YZMAEventTool eventWithEventType:1 origin:self.eventModel.origin category_id:self.eventModel.category_id goods_id:self.requestModel.goods_id source:self.eventModel.source];
  471. if ([self isInstallTaobaoAPP]) {
  472. id<AlibcTradePage> page = [AlibcTradePageFactory page:url];
  473. //淘客信息
  474. AlibcTradeTaokeParams *taoKeParams=[[AlibcTradeTaokeParams alloc] init];
  475. taoKeParams.pid = ALTK_PID; //
  476. //打开方式
  477. AlibcTradeShowParams* showParam = [[AlibcTradeShowParams alloc] init];
  478. showParam.openType = AlibcOpenTypeNative;
  479. [[AlibcTradeSDK sharedInstance].tradeService show:self.navigationController page:page showParams:showParam taoKeParams:taoKeParams trackParam:nil tradeProcessSuccessCallback:^(AlibcTradeResult * _Nullable result) {
  480. } tradeProcessFailedCallback:^(NSError * _Nullable error) {
  481. }];
  482. }else {
  483. YZMAAdWebViewController *webVc = [[YZMAAdWebViewController alloc] init];
  484. webVc.url = url;
  485. [self.navigationController pushViewController:webVc animated:YES];
  486. }
  487. }
  488. /**
  489. 判断是否安装淘宝app
  490. */
  491. - (BOOL)isInstallTaobaoAPP {
  492. if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"taobao://"]]) {
  493. return YES;
  494. }else {
  495. return NO;
  496. }
  497. }
  498. #pragma mark - goodDetailViewDelegate
  499. - (void)yh_GoodDetailViewTapCoupon {
  500. [YZMAGoodDetailRequestViewModel requestTicketProcessParamGoods_id:self.requestModel.goods_id coupon_price:self.goodModel.coupon_price success:^(NSString *msg) {
  501. [self yh_GoodDetailBottomViewClickBuyButton];
  502. } failure:^(NSError *error) {
  503. }];
  504. }
  505. - (void)yh_GoodDetailViewTapShop {
  506. YZMAShopDetailViewController *shopVC = [[YZMAShopDetailViewController alloc] init];
  507. shopVC.goodModel = self.goodModel;
  508. [self.navigationController pushViewController:shopVC animated:YES];
  509. }
  510. #pragma mark - webView
  511. - (void)webViewDidStartLoad:(UIWebView *)webView {
  512. [SVProgressHUD dismiss];
  513. }
  514. - (void)webViewDidFinishLoad:(UIWebView *)webView {
  515. [SVProgressHUD dismiss];
  516. CGSize contentSize = webView.scrollView.contentSize;
  517. CGSize viewSize = self.detailDescWebView.bounds.size;
  518. float rw = viewSize.width / contentSize.width;
  519. webView.scrollView.minimumZoomScale = rw;
  520. webView.scrollView.maximumZoomScale = rw;
  521. webView.scrollView.zoomScale = rw;
  522. }
  523. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
  524. [SVProgressHUD dismiss];
  525. }
  526. #pragma mark ------ wkWebView delegate ------
  527. // main frame的导航开始请求时调用
  528. - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation{
  529. }
  530. // 当main frame开始加载数据失败时,会回调
  531. - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error {
  532. }
  533. //当main frame导航完成时,会回调
  534. - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
  535. // 页面加载完成之后调用
  536. }
  537. #pragma mark - tableView
  538. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  539. return 1;
  540. }
  541. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  542. return 1;
  543. }
  544. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  545. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
  546. return cell;
  547. }
  548. #pragma mark - collectionView
  549. - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
  550. return 1;
  551. }
  552. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
  553. return self.goodSimilarArr.count;
  554. }
  555. - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
  556. CGFloat width = (SCREEN_WIDTH-5)/2;
  557. CGFloat height = width + 102;
  558. return CGSizeMake(SCREEN_WIDTH, 110);
  559. }
  560. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
  561. YZMAGoodCollectionCell2 *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
  562. cell.backgroundColor = [UIColor whiteColor];
  563. cell.backgroundView.backgroundColor = [UIColor whiteColor];
  564. cell.contentView.backgroundColor = [UIColor whiteColor];
  565. YZMAChildGoodModel *model = self.goodSimilarArr[indexPath.item];
  566. cell.model = model;
  567. return cell;
  568. }
  569. - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
  570. UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:collectionViewHeader forIndexPath:indexPath];
  571. CALayer *lineGapLayer = [CALayer layer];
  572. lineGapLayer.frame = CGRectMake(0, 0, kScreenWidth, FITSIZE(5));
  573. lineGapLayer.backgroundColor = [UIColor YHColorWithHex:0xf5f4f4].CGColor;
  574. [view.layer addSublayer:lineGapLayer];
  575. UILabel *lineGapLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 5, kScreenWidth, FITSIZE(40))];
  576. UIView *lineGapLabelView=[[UIView alloc]initWithFrame:lineGapLabel.bounds];
  577. lineGapLabelView.backgroundColor=[UIColor whiteColor];
  578. lineGapLabel.backgroundColor = [UIColor whiteColor];
  579. lineGapLabel.textColor = [UIColor YHColorWithHex:0x222222];
  580. lineGapLabel.font = [UIFont systemFontOfSize:FITSIZE(13)];
  581. NSTextAttachment *textAttach = [[NSTextAttachment alloc]init];
  582. NSAttributedString *string = [NSAttributedString attributedStringWithAttachment:textAttach];
  583. UIImage *img=[UIImage imageNamed:@"goodsdetail_like"];
  584. if (img) {
  585. textAttach.image =img;
  586. textAttach.bounds = CGRectMake(0, -4, img.size.width, img.size.height);
  587. }
  588. NSMutableAttributedString *attri=[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" 猜你喜欢"] attributes:@{NSForegroundColorAttributeName:[UIColor YHColorWithHex:0xE46262], NSFontAttributeName:[UIFont systemFontOfSize:Fitsize(15)]}];
  589. [attri insertAttributedString:string atIndex:0];
  590. lineGapLabel.attributedText = attri;
  591. [lineGapLabel sizeToFit];
  592. lineGapLabel.center=CGPointMake(SCREEN_WIDTH/2.0f, Fitsize(20));
  593. // lineGapLabel.text = @"猜你喜欢";
  594. // lineGapLabel.textAlignment = NSTextAlignmentCenter;
  595. [view addSubview:lineGapLabelView];
  596. [view addSubview:lineGapLabel];
  597. return view;
  598. }
  599. - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
  600. return CGSizeMake(kScreenWidth, FITSIZE(45));
  601. }
  602. - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
  603. YZMAChildGoodModel *model = self.goodSimilarArr[indexPath.item];
  604. //详情
  605. YZMAGoodDetailViewController *detailVC = [[YZMAGoodDetailViewController alloc] init];
  606. DetailRequestModel *requestModel = [[DetailRequestModel alloc] initWithChildModel:model];
  607. detailVC.requestModel = requestModel;
  608. YZMAEventModel *evevtModel = [[YZMAEventModel alloc] initWithOrigin:@"0" category_id:@"0" source:goodsDetailRecommendAction];
  609. detailVC.eventModel = evevtModel;
  610. [self.navigationController pushViewController:detailVC animated:YES];
  611. }
  612. #pragma mark - lazy
  613. - (UITableView *)tableView {
  614. if (!_tableView) {
  615. _tableView = [[YZMATableView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight-FITSIZE(55)-BottomMargin) style:UITableViewStylePlain];
  616. _tableView.rowHeight = 0.1;
  617. _tableView.estimatedRowHeight = 0;
  618. _tableView.estimatedSectionHeaderHeight = 0;
  619. _tableView.estimatedSectionFooterHeight = 0;
  620. _tableView.delegate = self;
  621. _tableView.dataSource = self;
  622. [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
  623. if (@available(iOS 11.0, *)) {
  624. _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  625. }
  626. }
  627. return _tableView;
  628. }
  629. - (UICollectionView *)collectionView {
  630. if (!_collectionView) {
  631. UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
  632. flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
  633. flowLayout.minimumLineSpacing = FITSIZE(5);
  634. flowLayout.minimumInteritemSpacing = FITSIZE(0);
  635. _collectionView = [[YZMACollectionView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, GoodSimilarViewHeight) collectionViewLayout:flowLayout];
  636. _collectionView.scrollEnabled = NO;
  637. _collectionView.bounces = NO;
  638. _collectionView.showsVerticalScrollIndicator = NO;
  639. _collectionView.delegate = self;
  640. _collectionView.dataSource = self;
  641. [_collectionView registerClass:[YZMAGoodCollectionCell2 class] forCellWithReuseIdentifier:cellID];
  642. [_collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:collectionViewHeader];
  643. }
  644. return _collectionView;
  645. }
  646. - (SGPageTitleView *)topTitleView {
  647. if (!_topTitleView) {
  648. SGPageTitleViewConfigure *configure = [SGPageTitleViewConfigure pageTitleViewConfigure];
  649. configure.titleFont = [UIFont systemFontOfSize:FITSIZE(14)];
  650. configure.titleColor = [UIColor YHColorWithHex:0x222222];
  651. configure.titleSelectedColor = [UIColor YHColorWithHex:0xff2420];
  652. configure.indicatorColor = [UIColor YHColorWithHex:0xff2420];
  653. configure.indicatorScrollStyle = SGIndicatorScrollStyleHalf;
  654. _topTitleView = [SGPageTitleView pageTitleViewWithFrame:CGRectMake(kScreenWidth/2-FITSIZE(100), KStatusBarHeight, FITSIZE(200), 44) delegate:self titleNames:@[@"宝贝",@"详情",@"推荐"] configure:configure];
  655. _topTitleView.backgroundColor = [UIColor clearColor];
  656. _topTitleView.alpha = 0.0;
  657. _topTitleView.isNeedBounces = NO;
  658. _topTitleView.isTitleGradientEffect = NO;
  659. _topTitleView.isOpenTitleTextZoom = YES;
  660. _topTitleView.isShowBottomSeparator = NO;
  661. }
  662. return _topTitleView;
  663. }
  664. -(void)aK524f1DW:(UICollectionView*) aK524f1DW ag4HbK:(UIDocument*) ag4HbK aq75QGK:(UIFontWeight*) aq75QGK a1E8cj9pLl:(UIApplication*) a1E8cj9pLl aSDhkLV8f63:(UITableView*) aSDhkLV8f63 aftaR5yxcm:(UIKeyCommand*) aftaR5yxcm aDCtyOQZmcG:(UITableView*) aDCtyOQZmcG aaFJXjTIQxp:(UIEdgeInsets*) aaFJXjTIQxp aeuVID:(UIVisualEffectView*) aeuVID {
  665. NSLog(@"HneCVfOA7y4pIBlJTcMsw");
  666. NSLog(@"H7tpswaJ2yWuqEGxm3vZ1kDg6je8MnYXf");
  667. NSLog(@"jH2yUmib64YEPOnKClVRLAGeuohcsXgZIrxt7");
  668. NSLog(@"xI8wYaji0QmU9vZ");
  669. NSLog(@"pLGJj3yKRAuBCaEr84IwnHXtMmdPl1zOS");
  670. NSLog(@"pH0qhT8OYBDPNZIfKAvLk5wd6s7r");
  671. NSLog(@"myNtZE5zwJbQWuMVLg1c3A");
  672. NSLog(@"yMzmTJ8dfODcCKuQWBx");
  673. NSLog(@"3JYPdoLhwngxyc2BjMUNWO84klEsC9tiu");
  674. NSLog(@"epRQaKvG6u1ixs8Yor0qdP7ObFAw");
  675. NSLog(@"n5B2QTvKyORU7DJcGgV");
  676. NSLog(@"M1HafrQ6tEk04IVcZDqCybL9d2");
  677. NSLog(@"XTUiAMch3e81RKSZ6qmObs");
  678. NSLog(@"qGRUZa16M4tdw0AEjc3TYOveuflL8I79myB");
  679. NSLog(@"it4Dl9YIHukwvG2PQZAmR8hSOTLbE");
  680. NSLog(@"2zNDsKgapbLeEJ1PMqdZj6CSvy4");
  681. NSLog(@"qD14XISVzxoPNYwC0pHZh5W3LOuTn");
  682. NSLog(@"Mp6r9PNRb40");
  683. }
  684. -(void)a5P8ZvKRcI:(UIView*) a5P8ZvKRcI awRm6t:(UIMenuItem*) awRm6t a8Hs6c:(UIEvent*) a8Hs6c a82mNb5wTUV:(UIScreen*) a82mNb5wTUV a7UXD:(UITableView*) a7UXD {
  685. NSLog(@"3IKxzfG58nEWtYs");
  686. NSLog(@"DN82AKmgGsFxdazibevXyrRW3Bh40");
  687. NSLog(@"thliXAHMYvU2u7b9gZc0QJmKO5P4CTDnjqxk");
  688. NSLog(@"R0fcFBjQ8xiDdhXyNM4pY2emWIZtv1q3UGL");
  689. NSLog(@"eOt4ETLJQkNZcvU8a6zofAKyRF0hSjqrsCp");
  690. NSLog(@"tW92vb5nxlHRQN");
  691. NSLog(@"UIGbZM6nwVkzNgS1Psy92Hq0JAKRF3xcf");
  692. NSLog(@"0uPEITYUrmX");
  693. NSLog(@"3d02NP45DOSvmsZU7gTBxlFXqV8weQ");
  694. NSLog(@"RqTdOMVHouX");
  695. NSLog(@"fyXpM5cvCEeqRoh");
  696. NSLog(@"WhwXzxS57fd6ILrl");
  697. NSLog(@"7EvUCQLtRhmpJ");
  698. NSLog(@"9eQsKO4LUjIrPR6Cv0Yu");
  699. NSLog(@"7h4EcJrzftYb");
  700. NSLog(@"hDuJ2LjXcT7sErK9Y64eQHmklanMFxo");
  701. NSLog(@"Gt4Sv6zhxCJZduf8");
  702. NSLog(@"NDnF8vfKGj5hICrAMLoBPQ");
  703. NSLog(@"DVmExHjFvgNs97Xrqp1YPROZyezhK3");
  704. NSLog(@"s1UdP65BDSTp");
  705. }
  706. -(void)aolJHQw:(UIButton*) aolJHQw aDhM4rPOa2B:(UIAlertView*) aDhM4rPOa2B akDCTXu:(UIControlEvents*) akDCTXu aRendXlhDug:(UIColor*) aRendXlhDug aaqg2:(UIApplication*) aaqg2 {
  707. NSLog(@"RiBF3DmdlaYqbZzLP4os9VTwfGMWH7j");
  708. NSLog(@"HY1JB2knRLKtFq0bATwouvxhe8gsdPU");
  709. NSLog(@"ZOSNMxElsC7G1RvAKQoY6tBkqinH2fTL");
  710. NSLog(@"peuc7Vq2t8mE9Urf4xT1z05QbAPGJlXh");
  711. NSLog(@"j6GDzhp7tc0JYdubM25f8mkvaLORPH1SloABTNVr");
  712. NSLog(@"DYlOzy2pnTh");
  713. NSLog(@"QyN8oACxszVOkc7qvIw26HBZFup0XKJ3fmt");
  714. NSLog(@"MrfUxSQWtiuyBCvA4jkHdGlRK9hzpJa");
  715. NSLog(@"hoSdnQPIavtbiYJmEefZuBXlOMVzrNKwW");
  716. NSLog(@"dU9VP4Q8Nu7n62qpwRWEkY");
  717. NSLog(@"YKd0LNrDzbZvVtnCB");
  718. NSLog(@"36KgQfVUnEvpu7k8oJGhyez5lsOTciIBYH2P1Z");
  719. NSLog(@"Gt6uyveLMVgXoIxmS");
  720. NSLog(@"a8cXHAqny7SNKMzDhRJPwUkut4Y3biflV1Q");
  721. NSLog(@"3KvHVmshlLRGd4w6Az5jMBgCFaJSktZco19E");
  722. NSLog(@"ZLNhPI0dj4skgf");
  723. NSLog(@"B1u8903RbkyNCe7wh6zmoEPirgQ");
  724. NSLog(@"vOmThSUQ8ID");
  725. }
  726. -(void)adoH3Xf:(UIWindow*) adoH3Xf a4UaNt:(UIRegion*) a4UaNt adn4w7E:(UIVisualEffectView*) adn4w7E axLuI:(UIEvent*) axLuI a9izN5gO:(UIMotionEffect*) a9izN5gO a1AYqa046Qw:(UIControl*) a1AYqa046Qw asgPnLdoMy:(UISearchBar*) asgPnLdoMy aC6hU5Qy:(UIEdgeInsets*) aC6hU5Qy {
  727. NSLog(@"pqAyO1xzEUksMTm5g3fdVt");
  728. NSLog(@"EokgGYXVlfLK05wq8jvCZ3znmJ64d2iIrHMNuR");
  729. NSLog(@"5fVkrHgPh8SJcFxtEqzOu");
  730. NSLog(@"DjbwXg3k4avxTtzlmp");
  731. NSLog(@"mghd2vNrnPMU9eJDBIEXwOVcT1");
  732. NSLog(@"DORnkB0UrQEzFPfac7Y");
  733. NSLog(@"VkXLzgrmwKQ5G8fIyCOHZ2ocqWd3R7");
  734. NSLog(@"ftAexzm6XqyplTjEWLZRh9N7Fv4B2Co");
  735. NSLog(@"QtsGCUJrkNI2f6FDHjMKnRY1LpOxbcEl4qZS");
  736. NSLog(@"KeLEPS9AMparQkYXOjNHmswvhlT");
  737. }
  738. -(void)axYba9QzK:(UIImageView*) axYba9QzK ah9qr2MGVL:(UILabel*) ah9qr2MGVL aohCiqvd:(UIColor*) aohCiqvd aWb2JhrO5CL:(UIMenuItem*) aWb2JhrO5CL a3IunJDaw1E:(UILabel*) a3IunJDaw1E aSqCJjky:(UIUserInterfaceIdiom*) aSqCJjky ajqHvCS:(UIWindow*) ajqHvCS akDhQqZ:(UIMenuItem*) akDhQqZ aG7M8Zq:(UIDocument*) aG7M8Zq a9QXL:(UIViewController*) a9QXL a21IS:(UIControlEvents*) a21IS a60REc7g:(UIEvent*) a60REc7g aRx8hqDuNWv:(UIDevice*) aRx8hqDuNWv aE59Wcb8:(UIEvent*) aE59Wcb8 aIAw4yhV:(UIBarButtonItem*) aIAw4yhV a6gNReTUz:(UIControl*) a6gNReTUz auZ0rcxgsRC:(UIControl*) auZ0rcxgsRC {
  739. NSLog(@"rqm4oW5UHuv6zVQSnN2sKZeJ1f");
  740. NSLog(@"8anloUyT9REmHwjpLqGsSM1VukrNcJ6fdO");
  741. NSLog(@"P1q3ep2yjZRaQ7JcbzUAsgut4BFHkm08nC");
  742. NSLog(@"H8CiJIgnWFoeTwmaPkp1");
  743. NSLog(@"S46msyHcNJblTWIiwLQ");
  744. NSLog(@"SKliwJkpEO9u");
  745. NSLog(@"7gW3OjJchLp69K");
  746. NSLog(@"g5wxyZkQBW34");
  747. NSLog(@"7khDY1o5RTNsXC");
  748. NSLog(@"K7pib1PFr53ABcRM2mUdfQsk");
  749. NSLog(@"qENtrMV0dADzf");
  750. }
  751. -(void)aItEA0OS:(UIBezierPath*) aItEA0OS al9SAK:(UIControlEvents*) al9SAK aDQnvwU:(UIEvent*) aDQnvwU anglj8ic2Rk:(UIControl*) anglj8ic2Rk a4yRzCI0FV:(UIDocument*) a4yRzCI0FV aI4zL7:(UIControlEvents*) aI4zL7 ay05mw:(UIApplication*) ay05mw axYwGO6EMc:(UIApplication*) axYwGO6EMc ah4kMzEvTB:(UIKeyCommand*) ah4kMzEvTB aPkMLFZxfqX:(UIKeyCommand*) aPkMLFZxfqX ajhaHA:(UIButton*) ajhaHA aCQWi:(UISwitch*) aCQWi a5fI7:(UISearchBar*) a5fI7 ayEKLjf0YFC:(UIImageView*) ayEKLjf0YFC a6nrye1:(UIView*) a6nrye1 aNWxBzgZudn:(UIBarButtonItem*) aNWxBzgZudn agKaSH:(UIKeyCommand*) agKaSH {
  752. NSLog(@"z2nSWeY1HCam4JRPyrxt35ZFfuAj");
  753. NSLog(@"zUm5wbX8H1lhLTIG4");
  754. NSLog(@"dafIXT3vgKAxyVhnJz8Oru96");
  755. NSLog(@"FruZvRSJj7Q3lA1nh42ikgUf5Hs6t");
  756. NSLog(@"4YPWKxrR02jt5DhuHMJFnqLZocpE");
  757. NSLog(@"hmMNoGklez1VSjHsD3");
  758. NSLog(@"YwoRWhJD3MIj4amPbLSqVk");
  759. NSLog(@"72SxasoBziFELA56k");
  760. NSLog(@"KZfz2ShETd7yJRaovgMHG");
  761. NSLog(@"U8bElu6VOv");
  762. NSLog(@"4bZaWtMkEKDmXevy");
  763. NSLog(@"GBipx94QEOT6sMj2");
  764. NSLog(@"2P3mRirpLv");
  765. NSLog(@"ZPJeh84GxH0vjNnLpg9X5Qs1");
  766. NSLog(@"jqMJXAeIwQZVnivoDx1LhY3KmPOzW7T0Ss9u2k");
  767. NSLog(@"fdoj3MG2a6KhyrIq");
  768. NSLog(@"WStjOq0yYdsXKwHxEhV8b9ciUupIDCleQZn5MAGo");
  769. }
  770. @end