这几天忙的如🐶,因为习惯了冬天的冷,中午休息小憩一会 ,但是还是有点不是很过瘾,还是周末给力,一觉睡到自然醒,忽然间看到公司微信群老大提的 bug 出现在眼前,心情顿时不好了,老大,这可是周末,是没有工资的 freetime, i want to be a free man!!!
今天首要任务就是 fix bug, 砍了几个但是还是有些问题,明天继续, ono, 今天已经是明天了.洗洗睡了,😴 都是瞎扯一通,莫怪干货在下面,可劲造~
先上图


. h
//// ShowNumOfSeletedPics.h// FileTransfer//// Created by HMC on 16/9/6.// Copyright © 2016年 SKing. All rights reserved.//#import <UIKit/UIKit.h>@interface ShowMenuOfBigPics : UIView@property (copy, nonatomic) void (^btnClickedBlock)(NSInteger index);//-(instancetype)initWithFrame:(CGRect)frame array:(NSArray * )btnTitleArray;/** 自定义初始化函数@param frame 大小@param cancelButtonTitle 取消按钮 不可空@param otherButtonTitles 操作类按钮@return self*/- (instancetype)initWithFrame:(CGRect)frame cancelButtonTitle:(nonnull NSString *)cancelButtonTitle otherButtonTitles:(nullable NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;-(void)showInSuperView:(UIView *)view;-(void)hide;@end
.m
//// ShowNumOfSeletedPics.m// FileTransfer//// Created by HMC on 16/9/6.// Copyright © 2016年 SKing. All rights reserved.//#define heightOfBtn#import "ShowMenuOfBigPics.h"@interface ShowMenuOfBigPics()//view 的背景@property (strong, nonatomic) UIView * bgView;//按钮的背景@property (strong, nonatomic) UIView * btnBGView;@property (assign, nonatomic) NSInteger arrayCount;@end@implementation ShowMenuOfBigPics-(instancetype)initWithFrame:(CGRect)frame cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION{NSMutableArray * arrayTitle = [NSMutableArray array];//指向参数的指针变量va_list btnTitle;//初始化上面的变量 otherButtonTitles 是可选参数的第一个参数va_start(btnTitle, otherButtonTitles);if(otherButtonTitles){//第一个直接放进数组[arrayTitle addObject:otherButtonTitles];//循环遍历放入数组//返回下一个参数,nsstring 为类型, 并指向下一个参数while ((otherButtonTitles = va_arg(btnTitle, NSString *))) {[arrayTitle addObject:otherButtonTitles];}}NSLog(@"%@",arrayTitle) ;//释放指针变量va_end(btnTitle);if (self = [super initWithFrame:frame]) {_arrayCount = arrayTitle.count;[self addSubview:self.bgView];//按钮的背景_btnBGView = [[UIView alloc]initWithFrame:(CGRect){0,HEIGHTOFSCREEN ,WIDTHOFSCREEN,(arrayTitle.count + 1 ) * 50 + 5 }];_btnBGView.backgroundColor = setRGBColor(233, 233, 233, 1.0);[self addSubview:_btnBGView];//创建按钮组for (int i = 0 ;i <= arrayTitle.count ; i++) {UIButton * btn = [[UIButton alloc]initWithFrame:(CGRect){0, 50.5 * i,WIDTHOFSCREEN,50}];btn.backgroundColor = [UIColor whiteColor];btn.tag = i ;[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];if (i != arrayTitle.count) {[btn setTitle:arrayTitle[i] forState:UIControlStateNormal];}else{btn.frame = (CGRect){0, 50.5 * i + 5,WIDTHOFSCREEN,50};[btn setTitle:cancelButtonTitle forState:UIControlStateNormal];}[_btnBGView addSubview:btn];}}return self;}-(UIView *)bgView{if (!_bgView) {//_bgView添加手势UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hide)];_bgView = [[UIView alloc]initWithFrame:(CGRect){0,0,WIDTHOFSCREEN,HEIGHTOFSCREEN - 55}];_bgView.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5];[_bgView addGestureRecognizer:tap];}return _bgView;}-(void)btnClicked:(UIButton *)btn {NSLog(@"点击了按钮");//[self hide];self.btnClickedBlock(btn.tag);}-(void)layoutSubviews{[super layoutSubviews];}-(void)showInSuperView:(UIView *)view{[view addSubview:self];[UIView animateWithDuration:0.5 animations:^{self.btnBGView.frame = (CGRect){0,HEIGHTOFSCREEN - (self.arrayCount + 1 ) * 50 - 5,WIDTHOFSCREEN,(self.arrayCount + 1 ) * 50 + 5 };} completion:^(BOOL finished) {}];}-(void)hide{self.bgView.hidden = YES;[UIView animateWithDuration:1.0 animations:^{self.frame = (CGRect){0,HEIGHTOFSCREEN ,WIDTHOFSCREEN ,0};} completion:^(BOOL finished) {[self removeFromSuperview];}];}@end
调用
ShowMenuOfBigPics * menuView = [[ShowMenuOfBigPics alloc] initWithFrame:(CGRect){0,0,WIDTHOFSCREEN,HEIGHTOFSCREEN} cancelButtonTitle:@"取消" otherButtonTitles:@"保存图片",nil];[menuView showInSuperView:self.view];weaklySelf(menuView);menuView.btnClickedBlock = ^(NSInteger index){switch (index) {case 0:NSLog(@"保存图片");[self savePicToLib:self.currentImage];break;case 1:{NSLog(@"取消");}break;default:break;}[weakSelf hide];};
