九宫格手势解锁

Unity制作九宫格手机手势解锁密码 九宫格手机手势解锁密码的demo. 阅读详情

由于没有图片素材实现效果比较简单》


重新添加一个继承与UIView 的类

YFNineFunctionView.h

初始化时加载按钮,并设置属性

- (instancetype)init
{
    self = [super init];
    if (self) {
        //初始化时加载视图
        [self setUpView];
    }
    return self;
}
//加载九个视图按钮,并且设置按钮属性
-(void)setUpView{
    for (int i = 0; i < 9; i++) {
    UIButton *btn  = [UIButton buttonWithType:UIButtonTypeSystem];
        btn.userInteractionEnabled = NO;
        [btn.layer setMasksToBounds:YES];
        //设置圆形按钮
        btn.layer.cornerRadius = 40;
        btn.userInteractionEnabled = NO;
        //设置边框
        btn.layer.borderWidth = 2.0;
        //[btn.layer setBorderWidth:2.0];
        //a设置边框颜色
        CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
        CGColorRef color = CGColorCreate(colorSpaceRef, (CGFloat[]){217/255.0,240/255.0,255/255.0,1});
        btn.layer.borderColor = color;
        [self addSubview:btn];
    }
}

在layoutSubviews中布局按钮位置

-(void)layoutSubviews{
    [super layoutSubviews];
    float Width = 80;
    float Height = 80;
    float margon = 30;
    for (int i = 0; i < 9; i++) {
    UIButton *btn = (UIButton *)self.subviews[i];
    btn.tag = i+1;
    btn.frame = CGRectMake((i/3)*(Width + margon), (i%3)*(Width + margon), Width, Height);
}
}

处理视图的一系列触摸事件

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)even{
    
    CGPoint point = [self getCurrentPoint:touches];
    UIButton *btn = [self getCurrentButton:point];
    if (btn&&btn.selected != YES) {
        btn.selected = YES;
        [self.buttons addObject:btn];
    }
    [self setNeedsDisplay];
}
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    CGPoint point = [self getCurrentPoint:touches];
    UIButton *btn = [self getCurrentButton:point];
    if (btn&&btn.selected != YES) {
        btn.selected = YES;
        [self.buttons addObject:btn];
    }
    [self setNeedsDisplay];
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
}
//获得点击点
-(CGPoint)getCurrentPoint:(NSSet*)touches{
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:touch.view];
    return point;
}
//获得点击处的按钮
-(UIButton *)getCurrentButton:(CGPoint)point{
    for (UIButton *btn in self.subviews) {
        //判断point是否在按钮内
        if (CGRectContainsPoint(btn.frame, point)) {
            
            
            return btn;
        }
    }
    
    return nil;
}

绘制线条

//绘图
-(void)drawRect:(CGRect)rect{
    //获取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    for (int i = 0; i < self.buttons.count; i++) {
        UIButton *btn=self.buttons[i];
    if (0==i) {
        //设置起点(注意连接的是中点)
        //            CGContextMoveToPoint(ctx, btn.frame.origin.x, btn.frame.origin.y);
            CGContextMoveToPoint(ctx, btn.center.x, btn.center.y);
    }else
        {
        //            CGContextAddLineToPoint(ctx, btn.frame.origin.x, btn.frame.origin.y);
        CGContextAddLineToPoint(ctx, btn.center.x, btn.center.y);
    }
     }
    CGContextSetLineWidth(ctx, 10);
       CGContextSetRGBStrokeColor(ctx, 20/255.0, 107/255.0, 153/255.0, 1);
    CGContextStrokePath(ctx);
}


 

FNineFunctionView

YFNineFunctionView



Android自定义九宫格手势解锁组件 本文主要介绍Java版本九宫格手势解锁组件的使用和实现原理。 阅读详情

相关推荐

iOS 九宫格连线手势解锁

Demo下载地址:http://download.youkuaiyun.com/download/u010981736/9948271效果图:核心代码:// // ClockView.m // 手势解锁 // // Created by llkj on 2017/8/24. // Copyright © 2017年 LayneCheung. All rights reserved. //#import

LayneCheung 1155

Android 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码

PatternLocker 项目地址:ihsg/PatternLocker  简介:Android 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码 更多:作者   提 Bug    标签:   此为 Android App 中常用控件之一的图案解锁(手势解锁、手势密码、九宫格密码、九宫格图形锁等)控件开源库,PatternLockerView 为主控件,负责图案密码的设...

未来很长,但我会努力的走下去。 1万+

Android进阶之自定义View实战(二)九宫格手势解锁实现

一.引言在上篇博客Android进阶之自定义View实战(一)仿iOS UISwitch控件实现中我们主要介绍了自定义View的最基本的实现方法。最为自定义View的入门篇,仅仅介绍了Canvas的基本使用方法,而对用户交互层面仅仅处理了单击事件接口,在实际的业务中,常常涉及到手势操作,本篇博客以九宫格手势解锁View为例,来说明自定义View如何根据需求处理用户的手势操作。虽然九宫格手势解锁自定义

kakaxicm的博客 3491

Android解锁图案共有多少种?

九个点 每个点只能连一次 ,如果两个点AB之间有其他点C,在C点被使用之前AB不能直接相连  两种解法  一种是直接用简单的9个循环  #include int main(){ int count=0; for(int i1=1; i1<10; i1++){ for(int i2=1; i2<10; i2++){ if(i2 == i1) continue; if(

layject的专栏 7537

Appium 九宫格 手势解锁

Appium是一款开源的自动化测试框架,可以用于测试Android应用程序。它支持多种测试用例格式,包括Appium、Appium-driver、Appium-server等。九宫格手势解锁是一种常见的Android应用程序的解锁方式,通过使用Appium来实现对Android应用程序的九宫格手势解锁测试。a = {"解锁提示": "com.elc:id/gesturepwd_create_text","九宫格": "com.elc:id/gesturepwd_create_lockview",

DJ355的博客 384

九宫格解锁

这是九宫格的小例子,使用时可以一一将几个类、相应布局、图片、drawable中的selector和.9图片加到自己工程中进行使用。

java里面常用的锁屏图案_最常用的100种解锁图案(附:手机图案万能解锁法)...

说到九宫格解锁,相信很多用户都认识,日常使用手机中,将锁屏设置成九宫格图案,不仅可以保护个人隐私,还可增加手机解锁的趣味性,对此,很多机智的网友脑洞大开设计了一系列解锁图案,通过不同的组合方式将解锁图案变得复杂又好看,下面小编整理了截止目前为止最复杂和兼具美感的解锁图案,一起来看看。1、5-6-7-2-9-4-52、7-2-9-4-3-8-1-6-53、1-4-8-6-3-5-7-2-9,最后移到...

weixin_30436581的博客 3万+

PatternLocker:Android 图形解锁/手势解锁 手势密码 图案密码 九宫格密码

Pattern Locker 此为Android App中常用控件之一的图案解锁(手势解锁、手势密码、九宫格密码、九宫格图形锁等)控件开源库,PatternLockerView为主控件,负责图案密码的设置和验证,PatternIndicatorView为指示器辅助控件,可根据设计需要选择使用。 由于本人水平有限,如果您在使用的过程中发现bug,或者发现有更好的实现方式和代码中写得不足的地方,请提issue或者PR,本人万分感激!!! 功能介绍 支持自定义各状态下(未操作时、操作时以及操作出错时)线颜色、填充色和线宽; 支持自定义各种状态下(未操作时、操作时以及操作出错时)每个CellView样式和连接线样式; 支持设置图案绘制完成后延迟自动清除的时长(默认1秒); 支持是否跳过中间点(默认不跳过); 支持是否触碰震动反馈(默认不震动); 支持指示器辅助控件可选择使用; 业务逻辑(至少连点几

手机九宫格滑动解锁方法种数(389112种)

有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣。 #include #include #include #include #include using namespace std; #define N 4 int vis[N][N]; bool check(int x1, int y1, int x2, int y2) { if(abs(x1 -

Dikea's Blog 5066

android 手势解锁

利用paint实现手势解锁,可自定义范围,位置,大小,线条颜色,背景等。。。

几款支持国标GB28181的平台以及视频监控设备接入的配置方法(Web端无插件播放)

GB28181解决的一个主要问题就是如何远程、跨网络、跨区域、跨级别的访问网络中的监控设备(包括IPC、NVR等),本文介绍几款G28181平台的接入配置方法,适合有监控视频摄像头的远程接入和预览需求的人群参考使用。

一名高级工程师的博客 1万+

9个点的所有解锁图_Android九宫格手势锁设定和解锁

最近在做APP的自动化测试,采用的是Appium方案。在测试过程中遇到了九宫格滑动解锁的问题,通过查阅相关资料,我做了一个通用的方法来处理九宫格在一个view中显示的情况。这种情况我们只能通过定位每一个点的相对坐标来滑动,这里先获取整个九宫格所在view的位置,获取该view左上角的坐标,接下来我们需要得到两个点之间横向和纵向的距离,就能方便的计算出每个点的坐标了。这里承接上一个版本的思路,提供了...

weixin_39880490的博客 1万+

Ubuntu Server 24.04 安装 (超详细)

本文介绍最小化安装 Ubuntu Server的详细过程。

炀炀的专栏 1万+

9宫格解锁 android_9个点的所有解锁图_Android九宫格手势锁设定和解锁

最近在做APP的自动化测试,采用的是Appium方案。在测试过程中遇到了九宫格滑动解锁的问题,通过查阅相关资料,我做了一个通用的方法来处理九宫格在一个view中显示的情况。这种情况我们只能通过定位每一个点的相对坐标来滑动,这里先获取整个九宫格所在view的位置,获取该view左上角的坐标,接下来我们需要得到两个点之间横向和纵向的距离,就能方便的计算出每个点的坐标了。这里承接上一个版本的思路,提供了...

weixin_29701553的博客 1万+

OpenClaw记忆插件升级实战:从memory-lancedb-pro安装到AgentSkill封装

向量数据库作为现代AI应用的核心基础设施,通过将非结构化数据转换为高维向量并利用相似度检索实现语义理解。其原理基于嵌入模型生成向量表示,结合近似最近邻搜索算法实现高效查询。这项技术为智能体系统提供了长期记忆和上下文感知能力,显著提升了对话连贯性与任务执行效率。在AI智能体开发领域,向量数据库常用于知识库构建、对话历史管理和个性化推荐等场景。本文聚焦OpenClaw框架中memory-lancedb-pro插件的部署实践,针对**插件加载顺序**和**Apache Arrow依赖**两大常见痛点,通过封装成可

weixin_42525482的博客 638

记录LeNet的硬件加速器设计(一)

LeNet的硬件加速器设计实现。

2301_81029398的博客 3543

手势解锁java后端设计_自己定义九宫格手势解锁

项目中用到手势解锁,然而没有在GitHub上找到想要的样式= =,仅仅好自己来定义了。以下来看代码~~基本上非常多应用的手势解锁全都是九宫格的,内部内就是九个小圈圈而已。那么我们就先来自己定义这个小圈圈吧~圈圈的颜色选择状态有大致有三种状态。所以我定义了一个枚举来区分package com.juzisang.com.library;/*** Created by 橘子桑 on 2016/3/27....

weixin_36192665的博客 601

Ultralytics 框架中predict 与 track 的区别

在 Ultralytics 框架中,predict 和 track 是两种不同的推理方法,分别用于目标检测(或分割、姿态估计)和目标跟踪任务。

浩瀚之水的专栏 1126

九宫格手势解锁控件

此九宫格手势自定义控件虽然比较简陋,但是也基本实现了如下功能: 1.默认显示九个小内圆,实心圆。 另外提供了,设置其半径,初始化颜色,以及选中之后的颜色 2.如果选中了小内圆,对应的也显示外圆环。 另外提供了,选中时候的颜色,以及失败的时候的颜色的设置 3.连线的绘制,在触摸滑动的过程中选中的点为联络站进行绘制路径。另外提供了 触摸时候连线的颜色以及失败的时候的颜色设置 4.手指离开触...

lk2021991的博客 561

【25届数字IC秋招总结】面试经验10——紫光同芯

25届数字ic面试记录——紫光同芯

lalala0635的博客 862

推免保研夏令营/预推免面试记录—北航网安

链接:https://pan.baidu.com/s/1vkP3EzbVrCc8a7wgQuUZgQ?链接:https://pan.baidu.com/s/1n4EFS2c9WLAfQn91CP4j2g?链接:https://pan.baidu.com/s/1VVNNSfcNDWjXhVhH3MtNjA?上面五个比例基本为:1:5:2:1:1。面试时间:当天上午面试,但是没面完,下午吃了饭之后又继续面试。--来自百度网盘超级会员V5的分享。--来自百度网盘超级会员V5的分享。

admin的博客 3011

Android九宫格手势解锁

最上面是获取日期显示使用的Time()获取到当前的时间,我们得到日期对其赋值 九宫格解锁有两个模式:CREATE_MODE  CHECK_MODE两种模式,一种是用来设置密码的模式,一种是输入密码的模式。验证登录密码会有三次机会,三次都输入错误会退出项目,忘记密码了也可以进行重新设置密码,非常的方便。重新设置手势密码这块没有进行验证,有兴趣的朋友可以用推送实现一个短信验证的效果。

xxb52306的博客 1026

数据挖掘实战-基于KMeans算法对超市客户进行聚类分群

本实验基于KMeans算法对超市客户进行了聚类分群。通过对客户购物数据进行聚类,我们成功将客户分为不同的群体。每个群体代表了具有相似购物行为和偏好的客户群体。通过实验结果,我们发现了客户群体之间的明显差异和共性。不同群体的客户在购买频率、购物金额和购买种类等方面有所区别。这为超市提供了重要的市场细分信息,帮助超市经营者更好地了解不同客户群体的需求和喜好,制定有针对性的营销策略和商品推荐,提高客户满意度和忠诚度。此外,实验还揭示了超市客户的购物行为规律,为超市优化商品陈列和促销策略提供了指导。

m0_64336780的博客 2万+

9宫格解锁 android_Android实现九宫格手势解锁

本文为大家分享了Android九宫格手势解锁的具体代码,供大家参考,具体内容如下里面有关于这个东西的介绍和接入方式,这里就不累赘了,我只是说下里面没有的。关于这个库的使用:protected void initViews() {//设置模式LockMode lockMode = (LockMode) getIntent().getSerializableExtra(Config.INTENT_SE...

weixin_39892842的博客 391

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

iOS-高仿支付宝手势解锁(九宫格)

高仿支付宝手势解锁, 通过手势枚举去实现手势密码相对应操作。

smileZhangli的博客 1719

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: iOS调试常见错误 如:symbol(s) not found for architecture x86_64
下一篇: iOS @2x 与@3x 图的详解
buildSetting
博客等级 码龄11年 36粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值