#####屏幕锁实现 #####1.九宫格的实现
- 九宫格以前单独说明过
- 九宫格长相
- 图片
- 添加按钮
#pragma mark - awakeFromNib-(void) awakeFromNib{ //代码添加与图形上添加手势不可同时存在,如:当拉了一个pan手势时,没有添加响应方法,转而代码实现,会有问题(以验证) [self setPan];// _selectedBtnArrM=[NSMutableArray array]; for (int i=0; i<9; i++) { UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; //醉了// [btn setBackgroundImage:[UIImage imageNamed:@"gesture_node_normal"] forState:UIControlStateNormal];// [btn setBackgroundImage:[UIImage imageNamed:@"gesture_node_highlighted"] forState:UIControlStateSelected]; [btn setImage:[UIImage imageNamed:@"gesture_node_normal"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"gesture_node_highlighted"] forState:UIControlStateSelected]; [btn setUserInteractionEnabled:NO]; [self addSubview:btn]; }}
- 九宫格布局
#pragma mark -layoutSubviews-(void)layoutSubviews{ [super layoutSubviews]; CGFloat marginW=10; CGFloat marginH=84; NSInteger rowCounts=3;// NSLog(@"%f",self.bounds.size.width); CGFloat spaceW=(self.bounds.size.width-2*marginW-rowCounts*74)/(rowCounts-1); NSInteger counts=self.subviews.count; for (int m=0; m
#####2.添加手势,两种方式
- 1.图形界面操作
- 操作图片
- 2.
- 操作图片
- 2。代码实现
#pragma mark - setPan-(void) setPan{ UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)]; [self addGestureRecognizer:pan];}-(void) pan:(UIPanGestureRecognizer *) pan{ _curP=[pan locationInView:self]; for (UIButton *btn in self.subviews) { if (CGRectContainsPoint(btn.frame ,_curP)) { btn.selected=YES; [self.selectedBtnArrM addObject:btn]; } } [self setNeedsDisplay]; if (pan.state==UIGestureRecognizerStateEnded) { //不行???// [self.selectedBtnArrM makeObjectsPerformSelector:@selector(setSelected:) withObject:@(NO)]; for (UIButton *btn in self.selectedBtnArrM) { btn.selected=NO; } [self.selectedBtnArrM removeAllObjects]; }}
#####3.画线与图片选中时的高亮
#pragma mark - setPan-(void) setPan{ UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)]; [self addGestureRecognizer:pan];}-(void) pan:(UIPanGestureRecognizer *) pan{ _curP=[pan locationInView:self]; for (UIButton *btn in self.subviews) { if (CGRectContainsPoint(btn.frame ,_curP)) { btn.selected=YES; [self.selectedBtnArrM addObject:btn]; } } [self setNeedsDisplay]; if (pan.state==UIGestureRecognizerStateEnded) { //不行???// [self.selectedBtnArrM makeObjectsPerformSelector:@selector(setSelected:) withObject:@(NO)]; for (UIButton *btn in self.selectedBtnArrM) { btn.selected=NO; } [self.selectedBtnArrM removeAllObjects]; }}
#####4.源代码地址
- 1.
- 2.