登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码,分别OC代码和swift代码调用

1.导入项目model文件OC代码(下载完整Demo

2.放入你需要显示的图片

一:OC调用

bash 复制代码
#import "ViewController.h"
#import "CodeView.h"

@interface ViewController () <CodeViewDelegate>
@property (nonatomic, strong) CodeView * codeView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    _codeView = [[CodeView alloc]initWithFrame:self.view.frame];
    [self.view addSubview:_codeView];
    _codeView.delegate = self;
    _codeView.passDistance = 2;
    self.view.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.8];
}

- (void)codeViewAuthenticationResult:(BOOL)result
{
    NSLog(@"验证%@通过", result ? @"" : @"不");
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [_codeView setCodeImage:[UIImage imageNamed:@"testB.jpg"]];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

二:swift调用

bash 复制代码
import UIKit

class MeViewController: BaseViewController,CodeViewDelegate{
    private var codeView = CodeView()
    private let meView = MeView()

    override func initData() {
        // 显示自定义视图弹窗
        showCustomPopup()
    }

// 显示自定义视图弹窗
    func showCustomPopup() {
        // 实例化自定义视图
        codeView = CodeView(frame: CGRect(x: 0, y: 0, width: ALERTVIEW_WIDTH - 150, height: ALERTVIEW_HEIGHT))
        // 设置自定义视图的样式和内容
        // 添加到当前视图控制器的视图上
        //let customView = CodeView(frame: self.view.frame)
//            self.view.addSubview(codeView)
        codeView.delegate = self
        codeView.passDistance = 2
        // 设置自定义视图的布局约束,可以根据需要进行调整
        codeView.center = self.view.center
        codeView.setCodeImage(UIImage(named: "testA.jpg"))
        meView.addSubview(codeView)
        // 添加点击背景关闭弹窗的逻辑(可选)
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissCustomPopup))
        codeView.addGestureRecognizer(tapGesture)
    }
    
    // 点击背景关闭弹窗的逻辑(可选)
    @objc func dismissCustomPopup() {
        // 移除自定义视图
        self.view.subviews.forEach { subview in
            if subview is CodeView {
                subview.removeFromSuperview()
            }
        }
    }
    
    func codeViewAuthenticationResult(_ result: Bool) {
        print("code%@ == ",result)
    }
}
相关推荐
君顾14 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生4 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
平头哥技术团队5 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++5 小时前
【洛谷】kmp算法
开发语言·算法
传奇开心果编程5 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
m0_380743876 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php
Draw Stars6 小时前
Git BASH安装教程
开发语言·git·bash
vortex56 小时前
一文讲透 Zsh 与 Bash 的区别
开发语言·bash
千谦阙听6 小时前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
Anhty8 小时前
2026九月最新变声器测评:iOS安卓双端适配,低延迟运行更稳定
android·人工智能·功能测试·ios·智能手机