// // VideoEffectSlider.m // TXLiteAVDemo // // Created by xiang zhang on 2017/11/3. // Copyright © 2017年 Tencent. All rights reserved. // #import "EffectSelectView.h" //#import "UIView+AdditionsX12.h" #import "ColorMacro.h" #define EFFCT_COUNT 4 #define EFFCT_IMAGE_WIDTH 60 * kScaleY #define EFFCT_IMAGE_SPACE 20 @implementation EffectSelectView { UIView *_allSub; UILabel *_titleL; UIScrollView *_effectSelectView; } - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { _allSub = [[UIView alloc]initWithFrame:CGRectMake(0, (self.height-55-EFFCT_IMAGE_WIDTH)/2, self.width, 30+5+EFFCT_IMAGE_WIDTH+20)]; _allSub.backgroundColor = [UIColor clearColor]; [self addSubview:_allSub]; _titleL = [[UILabel alloc]initWithFrame:CGRectMake(15, 0, self.width-30, 30)]; _titleL.text = YZMsg(@"长按添加特效"); _titleL.font = SYS_Font(16); _titleL.textColor = [UIColor whiteColor]; [_allSub addSubview:_titleL]; _delEffectBtn = [UIButton buttonWithType:UIButtonTypeCustom]; _delEffectBtn.backgroundColor = RGB_COLOR(@"#323232", 1); [_delEffectBtn setImage:[UIImage imageNamed:@"撤销"] forState:0]; [_delEffectBtn setTitle:YZMsg(@"撤销") forState:0]; _delEffectBtn.titleLabel.font = SYS_Font(13); [_delEffectBtn setTitleColor:RGB_COLOR(@"#969696", 1) forState:0]; _delEffectBtn.frame = CGRectMake(_allSub.width-70, 0, 55, 26); _delEffectBtn.layer.masksToBounds = YES; _delEffectBtn.layer.cornerRadius = 5; [_delEffectBtn addTarget:self action:@selector(doDelEffectBtn) forControlEvents:UIControlEventTouchUpInside]; [_allSub addSubview:_delEffectBtn]; _delEffectBtn.hidden = YES; CGFloat space = (self.width - EFFCT_IMAGE_WIDTH * EFFCT_COUNT) / (EFFCT_COUNT + 1); _effectSelectView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,_titleL.bottom+5, self.width,EFFCT_IMAGE_WIDTH+20)];//动图高度(EFFCT_IMAGE_WIDTH)+标题高度(20) [_allSub addSubview:_effectSelectView]; NSArray *effectNameS = @[YZMsg(@"抖动"),YZMsg(@"黑白"),YZMsg(@"灵魂出窍"),YZMsg(@"动感分屏")]; //抖动-黑白-灵魂出窍-动感分屏 UIImage *ddImg = [UIImage sd_imageWithGIFData:[PublicObj gifConvertDataWithName:@"其他特效-抖动"]]; UIImage *hbImg = [UIImage sd_imageWithGIFData:[PublicObj gifConvertDataWithName:@"其他特效-黑白"]]; UIImage *lhcqImg = [UIImage sd_imageWithGIFData:[PublicObj gifConvertDataWithName:@"其他特效-灵魂出窍"]]; UIImage *dgfpImg = [UIImage sd_imageWithGIFData:[PublicObj gifConvertDataWithName:@"其他特效-动感分屏"]]; NSArray *gifImgs = @[ddImg,hbImg,lhcqImg,dgfpImg]; for (int i = 0 ; i < EFFCT_COUNT ; i ++){ UIImageView *selImg = [[UIImageView alloc]initWithFrame:CGRectMake(space + (space + EFFCT_IMAGE_WIDTH) * i, 0, EFFCT_IMAGE_WIDTH, EFFCT_IMAGE_WIDTH)]; [selImg setImage:gifImgs[i]]; //gif有白边做个线圈遮挡毛边 UIImageView *selbg = [[UIImageView alloc]initWithFrame:CGRectMake(space + (space + EFFCT_IMAGE_WIDTH) * i+3.5, 0+3.5, EFFCT_IMAGE_WIDTH-7, EFFCT_IMAGE_WIDTH-7)]; selbg.layer.masksToBounds = YES; selbg.layer.cornerRadius = EFFCT_IMAGE_WIDTH/2-3.5; selbg.layer.borderColor = [UIColor whiteColor].CGColor; selbg.layer.borderWidth = 1.5; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setFrame:CGRectMake(space + (space + EFFCT_IMAGE_WIDTH) * i, 0, EFFCT_IMAGE_WIDTH, EFFCT_IMAGE_WIDTH)]; [btn setImage:[UIImage imageNamed:@""] forState:0]; btn.tag = i; [btn addTarget:self action:@selector(beginPress:) forControlEvents:UIControlEventTouchDown]; [btn addTarget:self action:@selector(endPress:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside]; UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(btn.left, btn.bottom-2, btn.width, 20)]; title.text = effectNameS[i]; title.font = SYS_Font(14); if (IS_IPHONE_5) { title.font = SYS_Font(12); } title.textAlignment = NSTextAlignmentCenter; title.textColor = [UIColor whiteColor]; [_effectSelectView addSubview:selImg]; [_effectSelectView addSubview:selbg]; [_effectSelectView addSubview:btn]; [_effectSelectView addSubview:title]; /* switch ((TXEffectType)btn.tag) { case TXEffectType_ROCK_LIGHT: { [btn setBackgroundColor:UIColorFromRGB(0xEC5F9B)]; } break; case TXEffectType_DARK_DRAEM: { [btn setBackgroundColor:UIColorFromRGB(0xEC8435)]; } break; case TXEffectType_SOUL_OUT: { [btn setBackgroundColor:UIColorFromRGB(0x1FBCB6)]; } break; case TXEffectType_SCREEN_SPLIT: { [btn setBackgroundColor:UIColorFromRGB(0x449FF3)]; } break; default: break; } */ } } return self; } -(void)doDelEffectBtn { NSLog(@"del"); [self.delegate onEffectSelDelete]; } //响应事件 -(void) beginPress: (UIButton *) button { if (_delEffectBtn.hidden == YES) { _delEffectBtn.hidden = NO; } TXEffectType type = (TXEffectType)button.tag; [self.delegate onVideoEffectBeginClick:type]; } //响应事件 -(void) endPress: (UIButton *) button { TXEffectType type = (TXEffectType)button.tag; [self.delegate onVideoEffectEndClick:type]; } @end