// // ItemSearchViewController.m // RedAnt ERP Mobile // // Created by Ray on 10/26/15. // Copyright © 2015 United Software Applications, Inc. All rights reserved. // #import "ItemSearchViewController.h" #import "const.h" #import "RANetwork.h" #import "CategoryCellNPD.h" #import "DetailViewController.h" #import "ItemSearchFilterViewController.h" #import "ContactListViewController.h" #import "MainViewController.h" #import "DefaultAppearance.h" #import "UIColor+JK_HEX.h" #import "CartUtils.h" #import "RAConvertor.h" #define DEF_CELL_HEIGHT 44 #define DEF_TABLE_HEIGHT 44 #define LINE_WIDTH 0 #define CELL_MARGIN 0 #define LABEL_MARGIN 5 #define END_SELECT_PORTFOLIO 5 #define PAGE_ITEM 30 @interface ItemSearchViewController () @property (nonatomic,assign) BOOL addAll; @property (nonatomic,assign) UIInterfaceOrientation toOrientation;///<屏幕将要旋转到的方向 @property (nonatomic,strong) NSOperationQueue *dataOperationQueue; @end @implementation ItemSearchViewController - (NSOperationQueue *)dataOperationQueue { if (!_dataOperationQueue) { _dataOperationQueue = [[NSOperationQueue alloc] init]; _dataOperationQueue.maxConcurrentOperationCount = 1; } return _dataOperationQueue; } #ifndef RA_NOTIFICATION -(void) reload_container_getdata:(bool)update_data { if(self.disable_refresh) return; [super reload_container_getdata:update_data]; // self.keywords=nil; if(update_data) { self.offset = 0; // [self.content_data removeAllObjects]; [self reload]; } else [self.collectionview reloadData]; return; // if(!self.showDetail) // return; // NSArray* a= self.childViewControllers; // // for (int i=0;i0) { // self.addWishBtn.enabled = true; // self.addCartBtn.enabled = true; // self.addPortfolioBtn.enabled=true; } self.select_count=count; checked=@"true"; } else { self.selectallBtn.tag = 0; [self.selectallBtn setTitle:@"Select"]; // self.addWishBtn.enabled = false; // self.addCartBtn.enabled = false; // self.addPortfolioBtn.enabled=false; checked=@"false"; } for(int i=0;i }]; } -(void)viewWillLayoutSubviews { self.headerView.layer.shadowPath =[UIBezierPath bezierPathWithRect:self.headerView.bounds].CGPath; self.collectionview.layer.shadowPath =[UIBezierPath bezierPathWithRect:self.collectionview.bounds].CGPath; } - (void) checkToolBar { // customer 隐藏add to portfolio AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; NSMutableArray *items = [self.selectToolbar.items mutableCopy]; if (appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) { if ([items containsObject:self.addPortfolioBtn]) { [items removeObject:self.addPortfolioBtn]; self.selectToolbar.items = items; } } else { if (![items containsObject:self.addPortfolioBtn]) { [items insertObject:self.addPortfolioBtn atIndex:4]; self.selectToolbar.items = items; } } } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[self navigationController] setNavigationBarHidden:YES animated:NO]; [self checkToolBar]; self.toOrientation = [RAUtils query_orientation:self];[RAUtils query_orientation:self];//[[UIApplication sharedApplication] statusBarOrientation]; [self.collectionview layoutIfNeeded]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark get data -(void) operation_loadMore { if (self.dataOperationQueue.operationCount > 1) { return ; } dispatch_async(dispatch_get_main_queue(), ^{ if(self.loadall ) { if(self.showalert) { self.showalert=false; [RAUtils message_box:@"Loading items" message:@"All loaded" completion:nil]; } return; } self.mum.hidden = false; [self.mum startAnimating]; self.mum.center = self.view.center; self.isrefreshing=true; [RANetwork request_itemsearch:self.offset limit:PAGE_ITEM covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) { NSDictionary* category_more=result; [self.mum stopAnimating]; self.isrefreshing=false; if (self.dataOperationQueue.operationCount > 1) { return ; } NSDictionary* more_items=[category_more objectForKey:@"items"]; if([[category_more valueForKey:@"result"] intValue]==2) { // self.category_data = category_data; NSMutableDictionary* items_json= [[self.category_data objectForKey:@"items"] mutableCopy]; int count =[[more_items valueForKey:@"count"] intValue]; for(int i=0;i 1) { return ; } dispatch_async(dispatch_get_main_queue(), ^{ if(self.isrefreshing) return; self.showalert=true; self.isrefreshing=true; self.loadall = false; UIRefreshControl *reF = (UIRefreshControl *)[self.collectionview viewWithTag:200]; [reF endRefreshing]; reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Pull to refresh"]; self.label_net_err.hidden=true; self.collectionview.hidden = true; self.mum.center = self.view.center; self.mum.hidden = false; [self.mum startAnimating]; [RANetwork request_itemsearch:0 limit:PAGE_ITEM covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) { NSDictionary* category_data=result; [self.mum stopAnimating]; self.isrefreshing=false; if (self.dataOperationQueue.operationCount > 1) { return ; } self.category_data = [category_data mutableCopy]; [self.collectionview reloadData]; if([[category_data valueForKey:@"result"] intValue]==2) { self.collectionview.hidden = false; NSDictionary * item_json = [self.category_data objectForKey:@"items"]; self.offset =[[item_json valueForKey:@"count"] intValue]; int total = [[self.category_data valueForKey:@"item_total_count"]intValue]; if(total<2) self.labelTotal.text = [NSString stringWithFormat:@"Total %d item",total]; else self.labelTotal.text = [NSString stringWithFormat:@"Total %d items",total]; } else if([[category_data valueForKey:@"result"] intValue]==RESULT_NET_ERROR) { self.label_net_err.hidden=false; self.collectionview.hidden = true; } else { [RAUtils message_box:@"Search" message:[category_data valueForKey:@"err_msg"] completion:nil]; } }]; }); } -(void) reload { __weak typeof(self) weakself = self; NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ if (weakself) { __strong typeof(weakself) strongself = weakself; [strongself operation_reload]; } }]; [self.dataOperationQueue addOperation:operation]; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ - (IBAction)onChangeDisplay:(UIButton *)sender { UICollectionViewFlowLayout *flowLayout =(UICollectionViewFlowLayout*)[self.collectionview collectionViewLayout]; flowLayout.scrollDirection= UICollectionViewScrollDirectionVertical; if(sender.tag==2&&self.categoryViewType != CATEGORY_VIEWTYPE_SMALL) { self.categoryViewType = CATEGORY_VIEWTYPE_SMALL; // [self.collectionview.collectionViewLayout invalidateLayout]; DebugLog(@"frame %f",self.collectionview.frame.size.height); DebugLog(@"offset %f",self.self.collectionview.contentOffset.y); DebugLog(@"content %f",self.collectionview.contentSize.height); // float pos =self.collectionview.contentOffset.y/self.collectionview.contentSize.height; [self.collectionview reloadData]; // CGPoint offset = self.collectionview.contentOffset; // offset.y=pos*self.collectionview.contentSize.height; // self.collectionview.contentOffset=offset; } else if(sender.tag==3&&self.categoryViewType != CATEGORY_VIEWTYPE_LARGE) { self.categoryViewType = CATEGORY_VIEWTYPE_LARGE; DebugLog(@"frame %f",self.collectionview.frame.size.height); DebugLog(@"offset %f",self.self.collectionview.contentOffset.y); DebugLog(@"content %f",self.collectionview.contentSize.height); [self.collectionview reloadData]; } else if(sender.tag==4&&self.categoryViewType != CATEGORY_VIEWTYPE_LIST) { self.categoryViewType = CATEGORY_VIEWTYPE_LIST; DebugLog(@"frame %f",self.collectionview.frame.size.height); DebugLog(@"offset %f",self.self.collectionview.contentOffset.y); DebugLog(@"content %f",self.collectionview.contentSize.height); [self.collectionview reloadData]; } [self showCategory]; } - (IBAction)onAddCartClick:(id)sender { [CartUtils add_to_cart:self selectorholder:self selector:@selector(addtocart)]; return; // UIApplication * app = [UIApplication sharedApplication]; // AppDelegate *appDelegate = (AppDelegate *)[app delegate]; // MainViewController* main_vc=(MainViewController*)appDelegate.main_vc; // if(appDelegate.bLogin==false) // { // // LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"]; // // loginvc.delegate = self; // // loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 // // loginvc.returnValue = ^(bool blogin){ // // // // UIApplication * app = [UIApplication sharedApplication]; // // AppDelegate *appDelegate = (AppDelegate *)[app delegate]; // // // // // if(blogin) // { // if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/true) // { // // [main_vc checklogin:false]; // // if(appDelegate.can_create_order) // { // NSString* msg =@""; // if(appDelegate.contact_id.length>0) // { // msg = [msg stringByAppendingString:@"\n\nCustomer:"]; // msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]]; // // } // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:msg delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil]; // // // // // alert. // [alert show]; // } // else // { // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil), nil]; // // // alert. // [alert show]; // } // } // else // { // [main_vc checklogin:false]; // [self addtocart]; // } // } // // // self.offset = 0; // // [self.content_data removeAllObjects]; // // [self loadpage]; // // // // [[self navigationController] setNavigationBarHidden:YES animated:NO]; // // }; // // UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ; // // // // // // // [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi]; // // navi.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 // [self presentViewController:navi animated:YES completion:^{ // // // navi.view.superview.bounds = CGRectMake(0, 0, 480, 320); // // DebugLog(@"LoginViewController present........."); // // // self.btop = false; // // <#code#> // }]; // } // else // { //// if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE&&/*appDelegate.contact_id==nil&&*/appDelegate.order_code==nil) // if(appDelegate.order_code==nil) // { // [main_vc checklogin:false]; // // if(appDelegate.can_create_order) // { // NSString* msg =@""; // if(appDelegate.contact_id.length>0) // { // msg = [msg stringByAppendingString:@"\n\nCustomer:"]; // msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]]; // // } // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:msg delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil]; // // // alert. // [alert show]; // } // else // { // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil), nil]; // // // alert. // [alert show]; // } // } // else // { // // if(appDelegate.order_code==nil) // [ self neworder]; // else // [self addtocart]; // // // // } // } // // // // } -(void) neworder { // __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Create Order" completion:^{ PopWaitAlert* pop = [RAUtils waiting_pop:@"Create Order" completion:nil]; [RANetwork request_create_order:^(NSMutableDictionary *result) { NSMutableDictionary* return_json = result; // [waitalert dismissViewControllerAnimated:YES completion:^{ [pop hide]; if([[return_json valueForKey:@"result"] intValue]==2) { int result=[[return_json valueForKey:@"result"] intValue]; if(result==2) { //successed. NSString* order_code = [return_json valueForKey:@"orderCode"]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; appDelegate.order_code = order_code; [self addtocart]; } } else { [RAUtils message_box:@"Add To Cart" message:[return_json valueForKey:@"err_msg"] completion:nil] ; } // }]; }]; // }]; } - (IBAction)onAddPortfolioClick:(id)sender { UIApplication * app = [UIApplication sharedApplication]; AppDelegate *appDelegate = (AppDelegate *)[app delegate]; MainViewController* main_vc=(MainViewController*)appDelegate.main_vc; if(appDelegate.bLogin==false) { LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"]; // loginvc.delegate = self; // loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 loginvc.returnValue = ^(bool blogin){ if(blogin) { [main_vc checklogin:false]; [self checkToolBar]; [self addtoportfolio]; } }; UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ; // [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi]; navi.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 [self presentViewController:navi animated:YES completion:^{ // navi.view.superview.bounds = CGRectMake(0, 0, 480, 320); DebugLog(@"LoginViewController present........."); // self.btop = false; // <#code#> }]; } else { [self addtoportfolio]; } } - (IBAction)onAddWishlistClick:(id)sender { UIApplication * app = [UIApplication sharedApplication]; AppDelegate *appDelegate = (AppDelegate *)[app delegate]; MainViewController* main_vc=(MainViewController*)appDelegate.main_vc; if(appDelegate.bLogin==false) { LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"]; // loginvc.delegate = self; // loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 loginvc.returnValue = ^(bool blogin){ if(blogin) { [main_vc checklogin:false]; [self addtowish]; } }; UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ; // [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi]; navi.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种 [self presentViewController:navi animated:YES completion:^{ // navi.view.superview.bounds = CGRectMake(0, 0, 480, 320); DebugLog(@"LoginViewController present........."); // self.btop = false; // <#code#> }]; } else { [self addtowish]; } } -(void) addtocart { NSMutableDictionary* items =[[self.category_data objectForKey:@"items"] mutableCopy]; int count = [[items valueForKey:@"count"] intValue]; NSMutableArray* checked = [[NSMutableArray alloc] init]; for(int i=0;i)coordinator { [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; [coordinator animateAlongsideTransition:^(id _Nonnull context) { // what ever you want to prepare } completion:^(id _Nonnull context) { self.headerView.layer.shadowPath =[UIBezierPath bezierPathWithRect:self.headerView.bounds].CGPath; self.toOrientation = [RAUtils query_orientation:self];//[UIApplication sharedApplication].statusBarOrientation; [self.collectionview.collectionViewLayout invalidateLayout]; }]; } #pragma mark -- UICollectionViewDataSource -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { // 每个Section的item个数 NSDictionary * item_json = [self.category_data objectForKey:@"items"]; int count =[[item_json valueForKey:@"count"] intValue]; return count; } -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { NSString* value =[DefaultAppearance get_noneappearance_value:@"CategoryViewController" valuename:@"cell_border_color"]; if(value==nil) value=@""; unsigned long color = strtoul([value UTF8String],0,16); if(self.categoryViewType == CATEGORY_VIEWTYPE_SMALL) { static NSString * CellIdentifier = @"CategoryCellNPD"; CategoryCellNPD * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; NSDictionary * item_json =[[self.category_data objectForKey:@"items" ] objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; NSString* description =[item_json valueForKey:@"description"]; NSString* name =[item_json valueForKey:@"fash_name"]; bool wish_exist = [[item_json valueForKey:@"wish_exists"]boolValue]; bool cart_exists = [[item_json valueForKey:@"cart_exists"]boolValue]; bool closeout = [[item_json valueForKey:@"is_closeout"]boolValue]; BOOL more_color = [[item_json valueForKey:@"more_color"] boolValue]; cell.mark_moreColor.hidden = !more_color; if(wish_exist) cell.mark_wish.hidden=false; else cell.mark_wish.hidden=true; if(cart_exists) cell.mark_order.hidden=false; else cell.mark_order.hidden=true; if(closeout) cell.mark_closeout.hidden=false; else cell.mark_closeout.hidden=true; // NSString* old_price =[item_json valueForKey:@"old_price"]; // NSString* price =[item_json valueForKey:@"price"]; bool checked =[[item_json valueForKey:@"checked"] boolValue]; if(!checked) { cell.checkImageView.hidden = true; [cell setBackgroundColor:[UIColor whiteColor]/* UIColorFromRGB(0x996633)*/]; } else { cell.checkImageView.hidden = false; [cell setBackgroundColor: UIColorFromRGB(0x009966)]; } cell.nameLabel.text = description; cell.modelNoLabel.text=name; // cell.cellDescription.text = description; // cell.oldPrice.text = old_price; // cell.Price.text = price; cell.layer.borderColor = UIColorFromRGB(color).CGColor; cell.layer.borderWidth = 0.5; //cell.layer.cornerRadius=15; cell.layer.masksToBounds=true; #ifdef BUILD_UWAVER cell.mark_wish.hidden = YES; cell.mark_order.hidden = YES; cell.mark_closeout.hidden = YES; cell.mark_moreColor.hidden = YES; #endif return cell; } else if(self.categoryViewType == CATEGORY_VIEWTYPE_LARGE) { static NSString * CellIdentifier = @"CategoryCellNPDLarge"; CategoryCellNPD * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; NSDictionary * item_json =[[self.category_data objectForKey:@"items" ] objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; NSString* description =[item_json valueForKey:@"description"]; NSString* modelid =[item_json valueForKey:@"fash_name"]; bool checked =[[item_json valueForKey:@"checked"] boolValue]; bool wish_exist = [[item_json valueForKey:@"wish_exists"]boolValue]; bool cart_exists = [[item_json valueForKey:@"cart_exists"]boolValue]; bool closeout = [[item_json valueForKey:@"is_closeout"]boolValue]; BOOL more_color = [[item_json valueForKey:@"more_color"] boolValue]; cell.mark_moreColor.hidden = !more_color; if(wish_exist) cell.mark_wish.hidden=false; else cell.mark_wish.hidden=true; if(cart_exists) cell.mark_order.hidden=false; else cell.mark_order.hidden=true; if(closeout) cell.mark_closeout.hidden=false; else cell.mark_closeout.hidden=true; if(!checked) { cell.checkImageView.hidden = true; [cell setBackgroundColor:[UIColor whiteColor]/* UIColorFromRGB(0x996633)*/]; } else { cell.checkImageView.hidden = false; [cell setBackgroundColor: UIColorFromRGB(0x009966)]; } // NSString* name =[item_json valueForKey:@"name"]; // NSString* old_price =[item_json valueForKey:@"old_price"]; // NSString* price =[item_json valueForKey:@"price"]; cell.nameLabel.text = description; cell.modelNoLabel.text=modelid; // cell.cellDescription.text = description; // cell.oldPrice.text = old_price; // cell.Price.text = price; cell.layer.borderColor = UIColorFromRGB(color).CGColor; cell.layer.borderWidth = 0.5; //cell.layer.cornerRadius=15; cell.layer.masksToBounds=true; #ifdef BUILD_UWAVER cell.mark_wish.hidden = YES; cell.mark_order.hidden = YES; cell.mark_closeout.hidden = YES; cell.mark_moreColor.hidden = YES; #endif return cell; } else { static NSString * CellIdentifier = @"CategoryCellNPDList"; CategoryCellNPD * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; NSDictionary * item_json =[[self.category_data objectForKey:@"items" ] objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; NSString* description =[item_json valueForKey:@"description"]; NSString* name =[item_json valueForKey:@"fash_name"]; bool wish_exist = [[item_json valueForKey:@"wish_exists"]boolValue]; bool cart_exists = [[item_json valueForKey:@"cart_exists"]boolValue]; bool closeout = [[item_json valueForKey:@"is_closeout"]boolValue]; BOOL more_color = [[item_json valueForKey:@"more_color"] boolValue]; cell.mark_moreColor.hidden = !more_color; if(wish_exist) cell.mark_wish.hidden=false; else cell.mark_wish.hidden=true; if(cart_exists) cell.mark_order.hidden=false; else cell.mark_order.hidden=true; if(closeout) cell.mark_closeout.hidden=false; else cell.mark_closeout.hidden=true; // NSString* old_price =[item_json valueForKey:@"old_price"]; // NSString* price =[item_json valueForKey:@"price"]; bool checked =[[item_json valueForKey:@"checked"] boolValue]; if(!checked) { cell.checkImageView.hidden = true; [cell setBackgroundColor: [UIColor whiteColor]]; } else { cell.checkImageView.hidden = false; [cell setBackgroundColor: UIColorFromRGB(0x009966)]; } cell.nameLabel.text = description; cell.modelNoLabel.text=name; // cell.cellDescription.text = description; // cell.oldPrice.text = old_price; // cell.Price.text = price; cell.layer.borderColor = UIColorFromRGB(color).CGColor; cell.layer.borderWidth = 0.5; // cell.layer.cornerRadius=15; cell.layer.masksToBounds=true; #ifdef BUILD_UWAVER cell.mark_wish.hidden = YES; cell.mark_order.hidden = YES; cell.mark_closeout.hidden = YES; cell.mark_moreColor.hidden = YES; #endif return cell; } } - (void)collectionCell:(CategoryCellNPD *)cell setImageForIndexPath:(NSIndexPath *)indexPath { NSDictionary * item_json =[[self.category_data objectForKey:@"items" ] objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; NSString* img_url =[item_json valueForKey:@"img"]; NSString *loading = @"loading_l"; NSString *notFound = @"notfound_l"; if (self.categoryViewType == CATEGORY_VIEWTYPE_LARGE) { loading = @"loading_l"; notFound = @"notfound_l"; img_url =[item_json valueForKey:@"img_big"]; // large 大图 } else if (self.categoryViewType == CATEGORY_VIEWTYPE_SMALL) { loading = @"loading_s"; notFound = @"notfound_s"; img_url =[item_json valueForKey:@"img"]; // large 大图 } NSString* file_name=[img_url lastPathComponent]; if (![cell.imageName isEqualToString:img_url]) { cell.imageName = img_url; cell.cellImageView.image = [UIImage imageNamed:loading]; NSData* img_data=[iSalesDB load_cached_img:file_name loadFrom:img_url]; if(img_data!=nil) { UIImage * img =[UIImage imageWithData:img_data]; cell.cellImageView.image = img; } else { DebugLog(@"load image"); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData* downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url]]; dispatch_async(dispatch_get_main_queue(), ^{ if(downloadimg_data!=nil) { [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url]; UIImage * img =[UIImage imageWithData:downloadimg_data]; cell.cellImageView.image = img; } else cell.cellImageView.image = [UIImage imageNamed:notFound]; }); }); } } } - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { CategoryCellNPD * son_cell = (CategoryCellNPD *)cell; son_cell.imageName = nil; [self collectionCell:son_cell setImageForIndexPath:indexPath]; } - (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { CategoryCellNPD * son_cell = (CategoryCellNPD *)cell; NSString *loading = @"loading_l"; if (self.categoryViewType == CATEGORY_VIEWTYPE_LARGE) { loading = @"loading_l"; } else if (self.categoryViewType == CATEGORY_VIEWTYPE_SMALL) { loading = @"loading_s"; } son_cell.cellImageView.image = [UIImage imageNamed:loading]; } #pragma mark --UICollectionViewDelegateFlowLayout ////定义每个UICollectionView 的大小 //- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath //{ // return CGSizeMake(96, 100); //} //定义每个UICollectionView 的 margin - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { UIInterfaceOrientation orientation = [RAUtils query_orientation:self];//[[UIApplication sharedApplication]statusBarOrientation]; orientation = self.toOrientation; if (UIInterfaceOrientationIsLandscape(orientation)) { // DebugLog(@"横"); // if(self.showDetail) // return CGSizeMake(96, 100); if(self.categoryViewType ==CATEGORY_VIEWTYPE_LARGE) return CGSizeMake(328, 391); else if(self.categoryViewType ==CATEGORY_VIEWTYPE_LIST) return CGSizeMake(1024, 120); return CGSizeMake(193, 269); } else if(UIInterfaceOrientationIsPortrait(orientation)) { // DebugLog(@"竖"); // if(self.showDetail) // return CGSizeMake(96, 100); if(self.categoryViewType ==CATEGORY_VIEWTYPE_LARGE) return CGSizeMake(369, 440); else if(self.categoryViewType ==CATEGORY_VIEWTYPE_LIST) return CGSizeMake(768, 120); return CGSizeMake(180, 251); } DebugLog(@"error , %ld",(long)orientation ); return CGSizeMake(96, 100); } - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { if(self.categoryViewType ==CATEGORY_VIEWTYPE_LIST) return 1; return 15; } -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { if(self.showDetail) return UIEdgeInsetsMake(10, 5, 10, 5); // if(self.categoryViewType ==CATEGORY_VIEWTYPE_LARGE) // return UIEdgeInsetsMake(10, 10, 10, 10); if(self.categoryViewType ==CATEGORY_VIEWTYPE_LARGE) return UIEdgeInsetsMake(10, 10, 10, 10); else if(self.categoryViewType ==CATEGORY_VIEWTYPE_LIST) return UIEdgeInsetsMake(10, 0, 10, 0); return UIEdgeInsetsMake(10, 10, 10, 10); return UIEdgeInsetsMake(10, 10, 10, 10); } #pragma mark --UICollectionViewDelegate -(void) showDetailat:(NSString*) item_id category_id:(NSString*) category_id name:(NSString *)name index:(long)index { DetailViewController* dvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Model" bundle:nil] instantiateViewControllerWithIdentifier:@"DetailViewController" ]; // dvc dvc.OnBack=^(bool add_cart,bool add_wish,bool update_data) { NSMutableDictionary* items =[[self.category_data objectForKey:@"items"] mutableCopy]; NSMutableDictionary* item = [[items objectForKey:[NSString stringWithFormat:@"item_%ld",index]] mutableCopy]; if(add_cart) item[@"cart_exists"]=@"true"; if(add_wish) item[@"wish_exists"]=@"true"; items[[NSString stringWithFormat:@"item_%ld",index]] = item; self.category_data[@"items"]=items; [self.collectionview reloadData]; }; // dvc.use_model_name = true; // dvc.model_name=[transformed stringValue]; dvc.product_id = item_id; dvc.category_id=category_id; dvc.ispush = true; dvc.model_name = name; [dvc reload]; [self.navigationController pushViewController:dvc animated:true]; return; // //一下为detail嵌入当前窗口的方式 // self.categoryViewType = CATEGORY_VIEWTYPE_SMALL; // //[self.collectionview.collectionViewLayout invalidateLayout]; // [self.collectionview reloadData]; // UIInterfaceOrientation orientation =[UIApplication sharedApplication].statusBarOrientation; // int width=175; // // int height; // if(orientation == UIDeviceOrientationLandscapeLeft ||orientation == UIDeviceOrientationLandscapeRight) // { // width = 370; // // height = 400; // } // else // { // UICollectionViewFlowLayout *flowLayout =(UICollectionViewFlowLayout*)[self.collectionview collectionViewLayout]; // // flowLayout.scrollDirection= UICollectionViewScrollDirectionHorizontal; // // [self.collectionview ] set // // height = 251; // width = 180; // } // // // CGRect frame = CGRectMake(0, 48, self.view.bounds.size.width, 271); // // // // CGRect framedetail = CGRectMake(0,271 ,self.view.bounds.size.width,self.view.bounds.size.height-271); // // [UIView animateWithDuration:0.5 animations:^{ // self.collectionview.frame=frame; //// self.detailView.frame = framedetail; // // self.cagegoryLabel.hidden = true; // }]; // self.collectionview.autoresizingMask = self.collectionview.autoresizingMask ^ UIViewAutoresizingFlexibleWidth; // // self.showDetail = true; // // // NSArray* a= self.childViewControllers; // // for (int i=0;i= (self.collectionview.contentSize.height - frame.size.height)) || (self.collectionview.contentSize.height < frame.size.height&& [self.category_data[@"count"] intValue]>=PAGE_ITEM)) if (contentOffsetPoint.y >= (self.collectionview.contentSize.height - frame.size.height) && self.collectionview.contentSize.height > frame.size.height) { if(self.isrefreshing) return; DebugLog(@"scroll to the end,load more......"); [self loadMore]; // self.btnLoad.hidden = NO; } } else if(flowLayout.scrollDirection== UICollectionViewScrollDirectionHorizontal) { DebugLog(@"contentOffsetPoint %f",contentOffsetPoint.y); DebugLog(@"frame.size.height %f",frame.size.height); DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height); // if (contentOffsetPoint.x >= (self.collectionview.contentSize.width - frame.size.width) || (self.collectionview.contentSize.width < frame.size.width && [self.category_data[@"count"] intValue]>=PAGE_ITEM)) if (contentOffsetPoint.x >= (self.collectionview.contentSize.width - frame.size.width) && self.collectionview.contentSize.width > frame.size.width) { if(self.isrefreshing) return; DebugLog(@"scroll to the end,load more......"); [self loadMore]; // self.btnLoad.hidden = NO; } } } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ #pragma mark Jack - (void)addALlItem { self.addAll = !self.addAll; if (self.addAll) { [self.addAllCheckBtn setImage:[[UIImage imageNamed:@"check_1_24"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } else { [self.addAllCheckBtn setImage:[[UIImage imageNamed:@"check_0_24"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } } - (IBAction)addAllBtnClick:(id)sender { [self addALlItem]; } - (IBAction)addAllCheckBtnClick:(id)sender { [self addALlItem]; } - (void)reRefreshView { [self.collectionview reloadData]; } #pragma mark - RA_NOTIFICAITON -(void) refresh_ui { [self.collectionview reloadData]; } -(void) reload_data { self.offset = 0; [self reload]; } @end