博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS屏幕锁实现
阅读量:7051 次
发布时间:2019-06-28

本文共 2873 字,大约阅读时间需要 9 分钟。

hot3.png

#####屏幕锁实现 #####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.

转载于:https://my.oschina.net/HYLApple/blog/702546

你可能感兴趣的文章
2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
查看>>
angularjs探秘<三> 控制器controller及angular项目结构
查看>>
列表的常用操作符和BIF
查看>>
opencv里面CV_32FC1家族
查看>>
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
查看>>
JavaScript操作DOM的那些坑
查看>>
Acdream Path 动态规划
查看>>
手机版开发框架集合
查看>>
Memcache的客户端连接系列(二) Python
查看>>
shell 环境变量
查看>>
安装xampp二三事
查看>>
2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
查看>>
分解质因数
查看>>
字符型图片验证码识别完整过程及Python实现
查看>>
js,jquery获取url参数
查看>>
Java基础学习总结(36)——Java注释模板
查看>>
erange.heetian.com 回显任意账号
查看>>
OBJ文件格式简介
查看>>
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>