ExperienceCentreViewController.m 25.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
//
//  ExperienceCentreViewController.m
//  Lighting
//
//  Created by 曹云霄 on 16/6/1.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "ExperienceCentreViewController.h"
#import "SceneViewController.h"
11 12
#import "sceneScreeningCollectionViewCell.h"
#import "ProductScreeningTableViewCell.h"
勾芒's avatar
勾芒 committed
13 14
#import "GoodsImageView.h"
#import "ShareGoodsViewController.h"
曹云霄's avatar
曹云霄 committed
15
#import "DeviceDirectionManager.h"
曹云霄's avatar
曹云霄 committed
16 17
#import "HelpController.h"
#import "ShoppingBagViewController.h"
18

勾芒's avatar
勾芒 committed
19 20 21 22 23

#define LEFTWIDTH 100
#define RIGHTWIDTH 200
#define TOPWIDTH 300

曹云霄's avatar
曹云霄 committed
24
@interface ExperienceCentreViewController ()<AddImagesDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UITableViewDelegate,UITableViewDataSource,UIGestureRecognizerDelegate,SharePicturedelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
25

勾芒's avatar
勾芒 committed
26

27 28 29 30 31

@end

@implementation ExperienceCentreViewController

32 33 34 35 36 37 38 39


- (NSMutableArray *)sceneDatasArray
{
    if (!_sceneDatasArray) {
        _sceneDatasArray = [NSMutableArray array];
    }
    return _sceneDatasArray;
40 41 42
}


43 44 45 46 47 48 49
- (NSMutableArray *)productDatasArray
{
    if (!_productDatasArray) {
        _productDatasArray = [NSMutableArray array];
    }
    return _productDatasArray;
}
50 51


勾芒's avatar
勾芒 committed
52 53 54 55 56 57 58 59
- (NSMutableArray *)shareGoodsArray
{
    if (!_shareGoodsArray) {
        _shareGoodsArray = [NSMutableArray array];
    }
    return _shareGoodsArray;
}

60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
- (NSMutableArray *)sceneTempArray
{
    if (!_sceneTempArray) {
        _sceneTempArray = [NSMutableArray array];
    }
    return _sceneTempArray;
}

- (NSMutableArray *)productTempArray
{
    if (!_productTempArray) {
        _productTempArray = [NSMutableArray array];
    }
    return _productTempArray;
}

76 77 78 79 80 81 82
- (NSMutableArray *)lampArray
{
    if (!_lampArray) {
        _lampArray = [NSMutableArray array];
    }
    return _lampArray;
}
83

84 85 86 87 88
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self uiConfigAction];
}
89 90


91 92 93 94 95 96 97 98 99 100 101 102
#pragma mark -UI
- (void)uiConfigAction
{
    //场景
    self.sceneLayout.itemSize = CGSizeMake(133, 100);
    self.sceneLayout.minimumLineSpacing = 10;
    self.sceneLayout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10);
    self.sceneScrollview.delegate = self;
    self.sceneScrollview.dataSource = self;
    //产品
    self.productScrollview.dataSource = self;
    self.productScrollview.delegate = self;
103 104 105 106
    if (self.boolValue) {
        SceneListModel *model = [self.sceneDatasArray firstObject];
        [self.sceneImageView sd_setImageWithURL:[NSURL URLWithString:model.pricure] placeholderImage:REPLACEIMAGE];
    }
107 108 109 110 111 112 113
}

#pragma mark -UICollectionViewDataSource场景
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return self.sceneDatasArray.count;
}
114

115 116 117
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    sceneScreeningCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"sceneScreeningCollectionViewCell" forIndexPath:indexPath];
勾芒's avatar
勾芒 committed
118 119
     SceneListModel *model = [self.sceneDatasArray objectAtIndex_opple:indexPath.item];
    [cell.selectedScrenImageView sd_setImageWithURL:[NSURL URLWithString:model.pricure] placeholderImage:REPLACEIMAGE];
120 121 122
    cell.selectedScrenImageView.tag = indexPath.item+100;
    cell.selectedScrenImageView.userInteractionEnabled = YES;
    [cell.selectedScrenImageView addGestureRecognizer:[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressRemove:)]];
勾芒's avatar
勾芒 committed
123 124
    cell.selectedScrenImageView.layer.masksToBounds = YES;
    cell.selectedScrenImageView.layer.cornerRadius = kCornerRadius;
勾芒's avatar
勾芒 committed
125
    if (model.isSelectedSate) {
勾芒's avatar
勾芒 committed
126 127 128 129 130 131
        cell.selectedScrenImageView.layer.borderWidth = 2.0f;
        cell.selectedScrenImageView.layer.borderColor = kMainBlueColor.CGColor;
    }else
    {
        cell.selectedScrenImageView.layer.borderWidth = 0;
    }
132 133
    return cell;
}
134

135 136
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
勾芒's avatar
勾芒 committed
137 138
    for (SceneListModel *model in self.sceneDatasArray) {
        model.isSelectedSate = NO;
勾芒's avatar
勾芒 committed
139
    }
勾芒's avatar
勾芒 committed
140 141 142
   SceneListModel *model = [self.sceneDatasArray objectAtIndex_opple:indexPath.item];
    model.isSelectedSate = YES;
    [self.sceneImageView sd_setImageWithURL:[NSURL URLWithString:model.pricure] placeholderImage:REPLACEIMAGE];
勾芒's avatar
勾芒 committed
143
    [self.sceneScrollview reloadData];
144
}
145 146 147



148 149 150 151 152
#pragma mark -UITableViewDataSource商品
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.productDatasArray.count;
}
153

154 155 156 157 158
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ProductScreeningTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ProductScreeningTableViewCell" forIndexPath:indexPath];
    cell.backgroundColor = [UIColor clearColor];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
勾芒's avatar
勾芒 committed
159
    TOGoodsEntityModel *model = [self.productDatasArray objectAtIndex_opple:indexPath.row];
勾芒's avatar
勾芒 committed
160 161 162 163 164 165 166
    if (model.isSelectedState) {
        cell.selectedGoodsImageView.layer.borderWidth = 2.0f;
        cell.selectedGoodsImageView.layer.borderColor = kMainBlueColor.CGColor;
    }else
    {
        cell.selectedGoodsImageView.layer.borderWidth = 0;
    }
勾芒's avatar
勾芒 committed
167
    NSArray *imags = [model.pictures componentsSeparatedByString:@","];
168
    [cell.selectedGoodsImageView sd_setImageWithURL:[NSURL URLWithString:[imags firstObject]]];
169 170 171
    cell.selectedGoodsImageView.userInteractionEnabled = YES;
    cell.selectedGoodsImageView.tag = indexPath.row + 100;
    [cell.selectedGoodsImageView addGestureRecognizer:[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(productLongPressRemove:)]];
172 173
    return cell;
}
174 175


176 177 178 179
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 100;
}
180

勾芒's avatar
勾芒 committed
181 182
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
183
    WS(weakSelf);
勾芒's avatar
勾芒 committed
184
    ProductScreeningTableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
勾芒's avatar
勾芒 committed
185
    TOGoodsEntityModel *model = [self.productDatasArray objectAtIndex_opple:indexPath.row];
勾芒's avatar
勾芒 committed
186 187
    CGRect cellRect = [cell convertRect:cell.bounds toView:self.view];
    GoodsImageView *imageView = [[GoodsImageView alloc]initWithFrame:cellRect];
勾芒's avatar
勾芒 committed
188
    imageView.model = model;
189
    [imageView setDelectedBlock:^(TOGoodsEntityModel *delectedModel,GoodsImageView *deleteImageView) {
曹云霄's avatar
曹云霄 committed
190
        //删除先判断数量
191
        for (TOGoodsEntityModel *newModel in weakSelf.shareGoodsArray) {
曹云霄's avatar
曹云霄 committed
192 193
            if ([newModel.fid isEqualToString:delectedModel.fid]) {
                if (newModel.goodsNumber <= 1) {
194 195
                    [weakSelf.shareGoodsArray removeObject:delectedModel];
                    [weakSelf.lampArray removeObject:deleteImageView];
曹云霄's avatar
曹云霄 committed
196 197 198 199 200 201 202
                }else
                {
                    newModel.goodsNumber --;
                }
                break;
            }
        }
勾芒's avatar
勾芒 committed
203
    }];
勾芒's avatar
勾芒 committed
204 205 206
    imageView.userInteractionEnabled = YES;
    [UIView animateWithDuration:0.5 animations:^{
        
勾芒's avatar
勾芒 committed
207
        imageView.frame = CGRectMake((ScreenWidth-266)/2, (ScreenHeight-200)/2, 266, 200);
勾芒's avatar
勾芒 committed
208
    }];
209
    for (TOGoodsEntityModel *model in weakSelf.productDatasArray) {
勾芒's avatar
勾芒 committed
210 211 212
        model.isSelectedState = NO;
    }
    model.isSelectedState = YES;
曹云霄's avatar
曹云霄 committed
213 214 215 216 217 218 219 220 221 222 223 224
    
    //判断选中的商品是否已经存在
    if ([self.shareGoodsArray containsObject:model]) {
        for (TOGoodsEntityModel *newModel in self.shareGoodsArray) {
            if ([newModel.fid isEqualToString:model.fid]) {
                newModel.goodsNumber ++;
                break;
            }
        }
    }else
    {
       [self.shareGoodsArray addObject:model];
225
        [self.lampArray addObject:imageView];
曹云霄's avatar
曹云霄 committed
226
    }
勾芒's avatar
勾芒 committed
227 228
    NSArray *imags = [model.pictures componentsSeparatedByString:@","];
    [imageView sd_setImageWithURL:[NSURL URLWithString:[imags firstObject]] placeholderImage:REPLACEIMAGE];
229
    imageView.showImageViewAddress = [imags firstObject];
勾芒's avatar
勾芒 committed
230
    [self.sceneBackView addSubview:imageView];
勾芒's avatar
勾芒 committed
231
    [self.productScrollview reloadData];
勾芒's avatar
勾芒 committed
232
}
233 234 235 236 237


#pragma mark -返回
- (IBAction)ReturnButtonClickAction:(UIButton *)sender {
    
曹云霄's avatar
曹云霄 committed
238 239
    SHARED_APPDELEGATE.sceneArray = nil;
    SHARED_APPDELEGATE.productArray = nil;
240 241 242 243 244 245
    [self dismissViewControllerAnimated:YES completion:nil];
}


#pragma mark -购物袋
- (IBAction)ShoppingBagButtonClickAction:(UIButton *)sender {
勾芒's avatar
勾芒 committed
246
    
曹云霄's avatar
曹云霄 committed
247
    sender.selected = YES;
曹云霄's avatar
曹云霄 committed
248
    ShoppingBagViewController *shoppingBag = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"ShoppingBagViewController"];
曹云霄's avatar
曹云霄 committed
249 250 251 252 253 254 255 256
    [shoppingBag setDismissBlock:^{
        sender.selected = NO;
    }];
    shoppingBag.modalPresentationStyle = UIModalPresentationOverFullScreen;
    UIPopoverPresentationController *pop = shoppingBag.popoverPresentationController;
    pop.sourceView = shoppingBag.view;
    shoppingBag.datasArray = self.shareGoodsArray;
    [self presentViewController:shoppingBag animated:YES completion:nil];
257 258 259 260
}

#pragma mark -分享
- (IBAction)ShareButtonClickAction:(UIButton *)sender {
勾芒's avatar
勾芒 committed
261
    
262 263 264 265
    if (!self.shareGoodsArray.count) {
        [self ErrorMBProgressView:@"没有选择需要分享的商品"];
        return;
    }
曹云霄's avatar
曹云霄 committed
266
    UIImageWriteToSavedPhotosAlbum([self capture], self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
勾芒's avatar
勾芒 committed
267
    ShareGoodsViewController *shareController = [[ShareGoodsViewController alloc]init];
勾芒's avatar
勾芒 committed
268 269 270 271 272 273 274 275
    //商品id拼接
    NSMutableString *goodsID = [[NSMutableString alloc]init];
    for (TOGoodsEntityModel *model in self.shareGoodsArray) {
        [goodsID appendFormat:@"%@,",model.fid];
    }
    shareController.goodsIds = goodsID;
    shareController.shareImage = [self capture];
    shareController.delegate = self;
勾芒's avatar
勾芒 committed
276 277 278 279 280 281 282
    shareController.preferredContentSize = CGSizeMake(290, 120);
    shareController.modalPresentationStyle = UIModalPresentationPopover;
    UIPopoverPresentationController *popover = shareController.popoverPresentationController;
    popover.permittedArrowDirections = UIPopoverArrowDirectionLeft;
    popover.sourceView = shareController.view;
    popover.sourceRect =  CGRectMake(sender.mj_x, sender.mj_y-30, sender.mj_w, sender.mj_h);
    [self presentViewController:shareController animated:YES completion:nil];
曹云霄's avatar
曹云霄 committed
283 284 285 286 287 288 289 290 291 292 293
}

#pragma mark -保存图片到相册
- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
{
    if (error != NULL) {
        [self ErrorMBProgressView:@"保存相册失败"];
    }else
    {
        [self SuccessMBProgressView:@"保存相册成功"];
    }
294 295 296 297
}

#pragma mark -拍照
- (IBAction)TakingPhotoButtonClickAction:(UIButton *)sender {
曹云霄's avatar
曹云霄 committed
298
    
曹云霄's avatar
曹云霄 committed
299
    sender.selected = YES;
曹云霄's avatar
曹云霄 committed
300 301 302 303 304 305 306 307 308 309 310 311 312 313
    UIAlertController *alertView = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleAlert];
    UIImagePickerController *PcCamera = [[UIImagePickerController alloc]init];
    PcCamera.delegate = self;
    [DeviceDirectionManager instance].isHorizontal=YES;
    [alertView addAction:[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //拍照
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypeCamera];
            PcCamera.allowsEditing = YES;
            [self presentViewController:PcCamera animated:YES completion:nil];
        }
        else
        {
            [self ErrorMBProgressView:@"相机无法使用"];
曹云霄's avatar
曹云霄 committed
314
            sender.selected = NO;
曹云霄's avatar
曹云霄 committed
315 316 317 318 319 320 321 322 323 324 325 326
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"从相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //从相册中选择
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
            PcCamera.allowsEditing = YES;
            [self presentViewController:PcCamera animated:YES completion:nil];
        }
        else
        {
            [self ErrorMBProgressView:@"相册无法打开"];
曹云霄's avatar
曹云霄 committed
327
            sender.selected = NO;
曹云霄's avatar
曹云霄 committed
328 329 330
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
曹云霄's avatar
曹云霄 committed
331
        self.takingPicturesButton.selected = NO;
曹云霄's avatar
曹云霄 committed
332 333 334 335
        [alertView dismissViewControllerAnimated:YES completion:nil];
    }]];
    [self presentViewController:alertView animated:YES completion:nil];
}
勾芒's avatar
勾芒 committed
336

曹云霄's avatar
曹云霄 committed
337 338 339 340
#pragma mark -拍照、从相册选择
#pragma -mark -UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
曹云霄's avatar
曹云霄 committed
341
    [DeviceDirectionManager instance].isHorizontal = NO;
曹云霄's avatar
曹云霄 committed
342 343 344
    [self dismissViewControllerAnimated:YES completion:nil];
    UIImage *Headimage = [info objectForKey:UIImagePickerControllerOriginalImage];
    self.sceneImageView.image = Headimage;
曹云霄's avatar
曹云霄 committed
345
    self.takingPicturesButton.selected = NO;
勾芒's avatar
勾芒 committed
346
}
勾芒's avatar
勾芒 committed
347

勾芒's avatar
勾芒 committed
348 349 350 351 352 353 354 355 356 357 358 359 360
#pragma mark -截屏
- (UIImage *)capture
{
    // 创建一个context
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
    //把当前的全部画面导入到栈顶context中并进行渲染
    [self.sceneBackView.layer renderInContext:UIGraphicsGetCurrentContext()];
    // 从当前context中创建一个新图片
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    return img;
}
勾芒's avatar
勾芒 committed
361

曹云霄's avatar
曹云霄 committed
362

363 364
#pragma mark -全屏
- (IBAction)AmplificationButtonClickAction:(UIButton *)sender {
勾芒's avatar
勾芒 committed
365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
    
    if (!sender.selected) {
        
        [UIView animateWithDuration:0.75 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
            
            self.returnButton.frame = CGRectMake(self.returnButton.mj_x-LEFTWIDTH, self.returnButton.mj_y, self.returnButton.mj_w, self.returnButton.mj_h);
            self.shoppingbagButton.frame = CGRectMake(self.shoppingbagButton.mj_x-LEFTWIDTH, self.shoppingbagButton.mj_y, self.shoppingbagButton.mj_w, self.shoppingbagButton.mj_h);
            self.shareButton.frame = CGRectMake(self.shareButton.mj_x-LEFTWIDTH, self.shareButton.mj_y, self.shareButton.mj_w, self.shareButton.mj_h);
            self.takingPicturesButton.frame = CGRectMake(self.takingPicturesButton.mj_x-LEFTWIDTH, self.takingPicturesButton.mj_y, self.takingPicturesButton.mj_w, self.takingPicturesButton.mj_h);
            self.helpButton.frame = CGRectMake(self.helpButton.mj_x-LEFTWIDTH, self.helpButton.mj_y, self.helpButton.mj_w, self.helpButton.mj_h);
            self.sceneSelectedButton.frame = CGRectMake(self.sceneSelectedButton.mj_x, self.sceneSelectedButton.mj_y+RIGHTWIDTH, self.sceneSelectedButton.mj_w, self.sceneSelectedButton.mj_h);
            self.sceneScrollview.frame = CGRectMake(self.sceneScrollview.mj_x, self.sceneScrollview.mj_y+RIGHTWIDTH, self.sceneScrollview.mj_w, self.sceneScrollview.mj_h);
            self.productSelectedButton.frame = CGRectMake(self.productSelectedButton.mj_x+RIGHTWIDTH, self.productSelectedButton.mj_y, self.productSelectedButton.mj_w, self.productSelectedButton.mj_h);
            self.productScrollview.frame = CGRectMake(self.productScrollview.mj_x+RIGHTWIDTH, self.productScrollview.mj_y, self.productScrollview.mj_w, self.productScrollview.mj_h);
             self.amplificationButton.frame = CGRectMake(self.amplificationButton.mj_x, self.amplificationButton.mj_y-(RIGHTWIDTH+LEFTWIDTH), self.amplificationButton.mj_w, self.amplificationButton.mj_h);
            
        } completion:nil];
    }else
    {
        [UIView animateWithDuration:0.75 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
            
            self.returnButton.frame = CGRectMake(self.returnButton.mj_x+LEFTWIDTH, self.returnButton.mj_y, self.returnButton.mj_w, self.returnButton.mj_h);
            self.shoppingbagButton.frame = CGRectMake(self.shoppingbagButton.mj_x+LEFTWIDTH, self.shoppingbagButton.mj_y, self.shoppingbagButton.mj_w, self.shoppingbagButton.mj_h);
            self.shareButton.frame = CGRectMake(self.shareButton.mj_x+LEFTWIDTH, self.shareButton.mj_y, self.shareButton.mj_w, self.shareButton.mj_h);
            self.takingPicturesButton.frame = CGRectMake(self.takingPicturesButton.mj_x+LEFTWIDTH, self.takingPicturesButton.mj_y, self.takingPicturesButton.mj_w, self.takingPicturesButton.mj_h);
            self.helpButton.frame = CGRectMake(self.helpButton.mj_x+LEFTWIDTH, self.helpButton.mj_y, self.helpButton.mj_w, self.helpButton.mj_h);
            self.sceneSelectedButton.frame = CGRectMake(self.sceneSelectedButton.mj_x, self.sceneSelectedButton.mj_y-RIGHTWIDTH, self.sceneSelectedButton.mj_w, self.sceneSelectedButton.mj_h);
            self.sceneScrollview.frame = CGRectMake(self.sceneScrollview.mj_x, self.sceneScrollview.mj_y-RIGHTWIDTH, self.sceneScrollview.mj_w, self.sceneScrollview.mj_h);
            self.productSelectedButton.frame = CGRectMake(self.productSelectedButton.mj_x-RIGHTWIDTH, self.productSelectedButton.mj_y, self.productSelectedButton.mj_w, self.productSelectedButton.mj_h);
            self.productScrollview.frame = CGRectMake(self.productScrollview.mj_x-RIGHTWIDTH, self.productScrollview.mj_y, self.productScrollview.mj_w, self.productScrollview.mj_h);
            self.amplificationButton.frame = CGRectMake(self.amplificationButton.mj_x, self.amplificationButton.mj_y+(RIGHTWIDTH+LEFTWIDTH), self.amplificationButton.mj_w, self.amplificationButton.mj_h);
            
        } completion:nil];
    }
    sender.selected = !sender.selected;
400 401 402 403
}

#pragma mark -帮助
- (IBAction)HelpButtonClickAction:(UIButton *)sender {
曹云霄's avatar
曹云霄 committed
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
    
    sender.selected = YES;
    HelpController *helpView = [[HelpController alloc]init];
    helpView.backButtonPoint = self.returnButton.mj_origin;
    helpView.shoppingbagPoint = self.shoppingbagButton.mj_origin;
    helpView.sharePoint = self.shareButton.mj_origin;
    helpView.photoPoint = self.takingPicturesButton.mj_origin;
    helpView.fullScreenPoint = self.amplificationButton.mj_origin;
    helpView.helpPoint = self.helpButton.mj_origin;
    helpView.scenePoint = self.sceneSelectedButton.center;
    helpView.productPoint = self.productSelectedButton.center;
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dismissAction:)];
    [helpView.view addGestureRecognizer:tap];
    [self.view addSubview:helpView.view];
}

#pragma mark -销毁
- (void)dismissAction:(UITapGestureRecognizer *)tap
{
    self.helpButton.selected = NO;
    [tap.view removeFromSuperview];
425 426 427 428 429 430 431
}


/**************************功能区**************************/
#pragma mark -场景筛选
- (IBAction)SceneSelectedButtonClickAction:(UIButton *)sender {
    
曹云霄's avatar
曹云霄 committed
432
    sender.selected = YES;
勾芒's avatar
勾芒 committed
433
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SCENE"];
曹云霄's avatar
曹云霄 committed
434
    SceneViewController *sceneVC = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"SceneController"];
曹云霄's avatar
曹云霄 committed
435 436 437
    [sceneVC setDismissBlock:^{
        sender.selected = NO;
    }];
勾芒's avatar
勾芒 committed
438
    sceneVC.view.backgroundColor = [UIColor clearColor];
曹云霄's avatar
曹云霄 committed
439
    sceneVC.titleLabe.text = @"选择场景";
勾芒's avatar
勾芒 committed
440 441 442 443
    sceneVC.searchBackView.hidden = YES;
    sceneVC.materialButton.hidden = YES;
    sceneVC.priceButton.hidden = YES;
    sceneVC.typeButton.hidden = YES;
444 445
    sceneVC.delegate = self;
    sceneVC.endAnimationPoint = self.sceneSelectedButton.center;
446 447 448 449 450 451 452 453
    sceneVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
    UIPopoverPresentationController *pop = sceneVC.popoverPresentationController;
    pop.sourceView = sceneVC.view;
    [self presentViewController:sceneVC animated:YES completion:nil];
}

#pragma mark -产品筛选
- (IBAction)ProductSelectedButtonClickAction:(UIButton *)sender {
勾芒's avatar
勾芒 committed
454
    
曹云霄's avatar
曹云霄 committed
455
    sender.selected = YES;
勾芒's avatar
勾芒 committed
456
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SCENE"];
曹云霄's avatar
曹云霄 committed
457
    SceneViewController *sceneVC = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"SceneController"];
曹云霄's avatar
曹云霄 committed
458 459 460
    [sceneVC setDismissBlock:^{
        sender.selected = NO;
    }];
勾芒's avatar
勾芒 committed
461
    sceneVC.view.backgroundColor = [UIColor clearColor];
曹云霄's avatar
曹云霄 committed
462
    sceneVC.titleLabe.text = @"选择商品";
勾芒's avatar
勾芒 committed
463 464 465 466
    sceneVC.searchBackView.hidden = NO;
    sceneVC.materialButton.hidden = NO;
    sceneVC.priceButton.hidden = NO;
    sceneVC.typeButton.hidden = NO;
467 468
    sceneVC.delegate = self;
    sceneVC.endAnimationPoint = self.productSelectedButton.center;
勾芒's avatar
勾芒 committed
469 470 471 472
    sceneVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
    UIPopoverPresentationController *pop = sceneVC.popoverPresentationController;
    pop.sourceView = sceneVC.view;
    [self presentViewController:sceneVC animated:YES completion:nil];
473 474 475 476
}



477
#pragma mark -AddImagesDelegate选中图片
勾芒's avatar
勾芒 committed
478
- (void)SelectedImageswithModel:(JSONModel *)model withisScene:(BOOL)isScene returnResponse:(void (^)(BOOL))isThere
479 480
{
    if (isScene) {
勾芒's avatar
勾芒 committed
481
        //场景
曹云霄's avatar
曹云霄 committed
482
        SceneListModel *sceneModel = [(SceneListModel *)model copy];
483 484 485
        for (int i=0; i<self.sceneDatasArray.count; i++) {
            SceneListModel * model = [self.sceneDatasArray objectAtIndex_opple:i];
            if ([model.fid isEqualToString:sceneModel.fid]) {
勾芒's avatar
勾芒 committed
486
                isThere(YES);
487 488
                [self.sceneDatasArray removeObject:model];
                [self.sceneScrollview deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:i inSection:0]]];
勾芒's avatar
勾芒 committed
489 490
                return;
            }
491
        }
勾芒's avatar
勾芒 committed
492
        isThere(NO);
493
        [self.sceneTempArray addObject:sceneModel];
494 495 496
        
    }else
    {
勾芒's avatar
勾芒 committed
497
        //产品
曹云霄's avatar
曹云霄 committed
498
        TOGoodsEntityModel *goodsModel = [(TOGoodsEntityModel *)model copy];
499 500 501
        for (int i=0; i<self.productDatasArray.count; i++) {
            TOGoodsEntityModel *model = [self.productDatasArray objectAtIndex_opple:i];
            if ([model.fid isEqualToString:goodsModel.fid]) {
勾芒's avatar
勾芒 committed
502
                isThere(YES);
503 504
                [self.productDatasArray removeObject:model];
                [self.productScrollview deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:i inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
勾芒's avatar
勾芒 committed
505 506
                return;
            }
507
        }
勾芒's avatar
勾芒 committed
508
        isThere(NO);
509
        [self.productTempArray addObject:goodsModel];
510 511 512 513 514 515 516 517
    }
}

#pragma mark -刷新
- (void)RefreshSceneAndProduct:(BOOL)isScene
{
    if (isScene) {
        
518 519 520 521 522 523
        SceneListModel *model = [self.sceneTempArray firstObject];
        model.isSelectedSate = NO;
        [self.sceneDatasArray addObject:model];
        SHARED_APPDELEGATE.sceneArray = self.sceneDatasArray;
        [self.sceneTempArray removeObjectAtIndex:0];
        [self.sceneScrollview insertItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:self.sceneDatasArray.count-1 inSection:0]]];
524 525 526 527
        [self.sceneScrollview selectItemAtIndexPath:[NSIndexPath indexPathForRow:self.sceneDatasArray.count-1 inSection:0] animated:YES scrollPosition:UICollectionViewScrollPositionRight];
        
    }else
    {
528 529 530 531 532 533
        TOGoodsEntityModel *goodsModel = [self.productTempArray firstObject];
        goodsModel.isSelectedState = NO;
        [self.productDatasArray addObject:goodsModel];
        SHARED_APPDELEGATE.productArray = self.productDatasArray;
        [self.productTempArray removeObjectAtIndex:0];
        [self.productScrollview insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.productDatasArray.count-1 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
534 535 536 537
        [self.productScrollview scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.productDatasArray.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
    }
}

538 539 540 541 542 543 544 545 546 547 548 549
#pragma mark -场景长按删除
- (void)longPressRemove:(UILongPressGestureRecognizer *)longPress
{
    if (longPress.state == UIGestureRecognizerStateBegan) {
        NSInteger index = longPress.view.tag-100;
        [self.sceneDatasArray removeObjectAtIndex:index];
        [self.sceneScrollview deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.sceneScrollview reloadData];
        });
    }
}
550

551 552 553 554 555 556 557 558 559 560 561 562
#pragma mark -产品长按删除
- (void)productLongPressRemove:(UILongPressGestureRecognizer *)longPress
{
    if (longPress.state == UIGestureRecognizerStateBegan) {
        NSInteger index = longPress.view.tag-100;
        [self.productDatasArray removeObjectAtIndex:index];
        [self.productScrollview deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.productScrollview reloadData];
        });
    }
}
勾芒's avatar
勾芒 committed
563

勾芒's avatar
勾芒 committed
564 565 566 567
#pragma mark ---SharePicturedelegate
#pragma mark -上传图片进度
- (void)UploadImageProgress:(double)progress
{
568
    [self ShowProgressView:progress];
勾芒's avatar
勾芒 committed
569 570 571 572 573
}

#pragma mark -上传图片完成
- (void)UploadImageSuccess
{
574 575
    self.TCHud.labelText = @"上传完成";
    [self RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
576 577 578 579 580
}

#pragma mark -上传图片失败
- (void)UploadImageFailue
{
581 582
    self.TCHud.labelText = @"上传失败";
    [self RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
583 584
}

曹云霄's avatar
曹云霄 committed
585
#pragma mark -分享失败
586
- (void)CodeNotEqualZERO:(NSString *)message
曹云霄's avatar
曹云霄 committed
587 588 589 590
{
    [self ErrorMBProgressView:message];
}

591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608
#pragma mark -切换灯图片
- (IBAction)changeLampImageClickAction:(UIButton *)sender {

    //满足多组灯同时切换
    for (GoodsImageView *imageView in self.lampArray) {
        for (TOGoodsEntityModel *model in self.shareGoodsArray) {
            NSArray *images = [model.pictures componentsSeparatedByString:@","];
            if (![images containsObject:imageView.showImageViewAddress])continue;
            NSInteger index = [images indexOfObject:imageView.showImageViewAddress];
            if (index < images.count-1) {
                [imageView sd_setImageWithURL:[NSURL URLWithString:[images objectAtIndex:index+=1]]];
                imageView.showImageViewAddress = [images objectAtIndex:index];
            } else {
                [imageView sd_setImageWithURL:[NSURL URLWithString:[images firstObject]]];
                imageView.showImageViewAddress = [images firstObject];
            }
        }
    }
曹云霄's avatar
曹云霄 committed
609
    sender.selected = !sender.selected;
610 611
}

曹云霄's avatar
曹云霄 committed
612 613 614 615
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
616 617

@end