ExperienceCentreViewController.m 14.5 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
#import "SceneSelectedModel.h"
14

勾芒's avatar
勾芒 committed
15 16 17 18 19 20

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

@interface ExperienceCentreViewController ()<AddImagesDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UITableViewDelegate,UITableViewDataSource,UIGestureRecognizerDelegate>
21 22 23 24 25 26 27 28 29 30

/**
 *  选中场景数据
 */
@property (nonatomic,strong) NSMutableArray *sceneDatasArray;

/**
 *  选中产品数据源
 */
@property (nonatomic,strong) NSMutableArray *productDatasArray;
31

勾芒's avatar
勾芒 committed
32 33 34 35 36
/**
 *  选中灯
 */
@property (nonatomic,strong) UIImageView *imageView;

37 38 39 40 41

@end

@implementation ExperienceCentreViewController

42 43 44 45 46 47 48 49 50


- (NSMutableArray *)sceneDatasArray
{
    if (!_sceneDatasArray) {
        
        _sceneDatasArray = [NSMutableArray array];
    }
    return _sceneDatasArray;
51 52 53
}


54 55 56 57 58 59 60 61
- (NSMutableArray *)productDatasArray
{
    if (!_productDatasArray) {
        
        _productDatasArray = [NSMutableArray array];
    }
    return _productDatasArray;
}
62 63 64



65 66 67 68 69
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self uiConfigAction];
}
70 71


72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
#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;
    
}

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

93 94 95
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    sceneScreeningCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"sceneScreeningCollectionViewCell" forIndexPath:indexPath];
勾芒's avatar
勾芒 committed
96 97 98
    cell.selectedScrenImageView.image = [[self.sceneDatasArray objectAtIndex_opple:indexPath.item] sceneImage];
    cell.selectedScrenImageView.layer.masksToBounds = YES;
    cell.selectedScrenImageView.layer.cornerRadius = kCornerRadius;
99 100
    return cell;
}
101

102 103
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
勾芒's avatar
勾芒 committed
104 105 106 107
    sceneScreeningCollectionViewCell *cell = (sceneScreeningCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
    cell.selectedScrenImageView.layer.borderWidth = 1.0f;
    cell.selectedScrenImageView.layer.borderColor = kMainBlueColor.CGColor;
    self.sceneImageView.image = [[self.sceneDatasArray objectAtIndex_opple:indexPath.item] sceneImage];
108
}
109 110 111



112 113 114 115 116
#pragma mark -UITableViewDataSource商品
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.productDatasArray.count;
}
117

118 119 120 121 122
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ProductScreeningTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ProductScreeningTableViewCell" forIndexPath:indexPath];
    cell.backgroundColor = [UIColor clearColor];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
勾芒's avatar
勾芒 committed
123
    cell.selectedGoodsImageView.image = [[self.productDatasArray objectAtIndex_opple:indexPath.row] sceneImage];
124 125
    return cell;
}
126 127


128 129 130 131
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 100;
}
132

勾芒's avatar
勾芒 committed
133 134 135 136 137 138 139 140
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(200, 200, 133, 100)];
    self.imageView.userInteractionEnabled = YES;
    self.imageView.image = [[self.productDatasArray objectAtIndex_opple:indexPath.row] sceneImage];
    [self addImageGestures:self.imageView];
    [self.view addSubview:self.imageView];
}
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168







#pragma mark -返回
- (IBAction)ReturnButtonClickAction:(UIButton *)sender {
    
    [self dismissViewControllerAnimated:YES completion:nil];
}


#pragma mark -购物袋
- (IBAction)ShoppingBagButtonClickAction:(UIButton *)sender {
}

#pragma mark -分享
- (IBAction)ShareButtonClickAction:(UIButton *)sender {
}

#pragma mark -拍照
- (IBAction)TakingPhotoButtonClickAction:(UIButton *)sender {
}

#pragma mark -全屏
- (IBAction)AmplificationButtonClickAction:(UIButton *)sender {
勾芒's avatar
勾芒 committed
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
    
    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;
204 205 206 207 208 209 210 211 212 213 214 215 216
}

#pragma mark -帮助
- (IBAction)HelpButtonClickAction:(UIButton *)sender {
}




/**************************功能区**************************/
#pragma mark -场景筛选
- (IBAction)SceneSelectedButtonClickAction:(UIButton *)sender {
    
勾芒's avatar
勾芒 committed
217
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SCENE"];
218
    SceneViewController *sceneVC = [[self getStoryboardWithName] instantiateViewControllerWithIdentifier:@"SceneController"];
勾芒's avatar
勾芒 committed
219 220 221 222 223
    sceneVC.view.backgroundColor = [UIColor clearColor];
    sceneVC.searchBackView.hidden = YES;
    sceneVC.materialButton.hidden = YES;
    sceneVC.priceButton.hidden = YES;
    sceneVC.typeButton.hidden = YES;
224 225
    sceneVC.delegate = self;
    sceneVC.endAnimationPoint = self.sceneSelectedButton.center;
226 227 228 229 230 231 232 233
    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
234 235 236 237 238 239 240 241
    
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SCENE"];
    SceneViewController *sceneVC = [[self getStoryboardWithName] instantiateViewControllerWithIdentifier:@"SceneController"];
    sceneVC.view.backgroundColor = [UIColor clearColor];
    sceneVC.searchBackView.hidden = NO;
    sceneVC.materialButton.hidden = NO;
    sceneVC.priceButton.hidden = NO;
    sceneVC.typeButton.hidden = NO;
242 243
    sceneVC.delegate = self;
    sceneVC.endAnimationPoint = self.productSelectedButton.center;
勾芒's avatar
勾芒 committed
244 245 246 247
    sceneVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
    UIPopoverPresentationController *pop = sceneVC.popoverPresentationController;
    pop.sourceView = sceneVC.view;
    [self presentViewController:sceneVC animated:YES completion:nil];
248 249 250 251
}



252 253 254 255 256
#pragma mark -AddImagesDelegate选中图片
- (void)SelectedImages:(UIImage *)image withisScene:(BOOL)isScene returnResponse:(void (^)(BOOL))isThere
{
    if (isScene) {
        
勾芒's avatar
勾芒 committed
257 258 259 260 261 262 263
        for (SceneSelectedModel *objc in self.sceneDatasArray) {
            if ([objc.sceneImage isEqual:image]) {
                isThere(YES);
                [self.sceneDatasArray removeObject:objc];
                [self.sceneScrollview reloadData];
                return;
            }
264
        }
勾芒's avatar
勾芒 committed
265 266 267 268 269
        isThere(NO);
        SceneSelectedModel *model = [[SceneSelectedModel alloc]init];
        model.sceneImage = image;
        model.isSelectedState = NO;
        [self.sceneDatasArray addObject:model];
270 271 272
        
    }else
    {
勾芒's avatar
勾芒 committed
273 274 275 276 277 278 279
        for (SceneSelectedModel *objc in self.productDatasArray) {
            if ([objc.sceneImage isEqual:image]) {
                isThere(YES);
                [self.productDatasArray removeObject:objc];
                [self.productScrollview reloadData];
                return;
            }
280
        }
勾芒's avatar
勾芒 committed
281 282 283 284 285
        isThere(NO);
        SceneSelectedModel *model = [[SceneSelectedModel alloc]init];
        model.sceneImage = image;
        model.isSelectedState = NO;
        [self.productDatasArray addObject:model];
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303
    }
}

#pragma mark -刷新
- (void)RefreshSceneAndProduct:(BOOL)isScene
{
    if (isScene) {
        
        [self.sceneScrollview reloadData];
        [self.sceneScrollview selectItemAtIndexPath:[NSIndexPath indexPathForRow:self.sceneDatasArray.count-1 inSection:0] animated:YES scrollPosition:UICollectionViewScrollPositionRight];
        
    }else
    {
        [self.productScrollview reloadData];
        [self.productScrollview scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.productDatasArray.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
    }
}

304

勾芒's avatar
勾芒 committed
305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355



#pragma mark -添加图片缩放、移动、旋转手势
- (void)addImageGestures:(UIImageView *)imageView
{
    UIRotationGestureRecognizer *rotationGes = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(backGroundViewRotationAction:)];
    rotationGes.delegate = self;
    [imageView addGestureRecognizer:rotationGes];
    
    UIPinchGestureRecognizer *pinchGes = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(backGroundViewPinchAction:)];
    pinchGes.delegate =self;
    [imageView addGestureRecognizer:pinchGes];
    
    UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(backGroundViewPanAction:)];
    [panGes setMinimumNumberOfTouches:1];
    [panGes setMaximumNumberOfTouches:1];
    panGes.delegate = self;
    [imageView addGestureRecognizer:panGes];
}

#pragma mark 手势触发事件
-(void)backGroundViewPinchAction:(UIPinchGestureRecognizer *)gesture{
    
    UIView *view = self.imageView;
    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
        view.transform = CGAffineTransformScale(view.transform, gesture.scale, gesture.scale);
        gesture.scale = 1;
    }
}

-(void)backGroundViewPanAction:(UIPanGestureRecognizer *)gesture{
    
    if (gesture.numberOfTouches == 1) {
        if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
            CGPoint transLation = [gesture translationInView:self.view];
            self.imageView.center = CGPointMake(self.imageView.center.x + transLation.x, self.imageView.center.y + transLation.y);
            [gesture setTranslation:CGPointZero inView:self.view];
        }
    }
}

-(void)backGroundViewRotationAction:(UIRotationGestureRecognizer *)gesture{
    
    self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, gesture.rotation);
    gesture.rotation = 0;
    
}



356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#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.
}
*/

@end