按键精灵ios越狱脚本教程:多选框联动的ui界面

server/2025/1/15 20:38:11/

以下是一个简单的 iOS 代码示例,使用 Swift 语言来创建一个包含多选框(复选框)的 UI 界面,并实现联动效果。

import UIKitclass ViewController: UIViewController {let checkbox1 = UIButton(type:.system)let checkbox2 = UIButton(type:.system)let checkbox3 = UIButton(type:.system)override func viewDidLoad() {super.viewDidLoad()// 设置复选框的外观checkbox1.setTitle("选项 1", for:.normal)checkbox1.setTitleColor(.black, for:.normal)checkbox1.addTarget(self, action: #selector(checkboxTapped(_:)), for:.touchUpInside)checkbox1.setImage(UIImage(systemName: "square"), for:.normal)checkbox1.setImage(UIImage(systemName: "checkmark.square"), for:.selected)checkbox1.translatesAutoresizingMaskIntoConstraints = falseview.addSubview(checkbox1)checkbox2.setTitle("选项 2", for:.normal)checkbox2.setTitleColor(.black, for:.normal)checkbox2.addTarget(self, action: #selector(checkboxTapped(_:)), for:.touchUpInside)checkbox2.setImage(UIImage(systemName: "square"), for:.normal)checkbox2.setImage(UIImage(systemName: "checkmark.square"), for:.selected)checkbox2.translatesAutoresizingMaskIntoConstraints = falseview.addSubview(checkbox2)checkbox3.setTitle("选项 3", for:.normal)checkbox3.setTitleColor(.black, for:.normal)checkbox3.addTarget(self, action: #selector(checkboxTapped(_:)), for:.touchUpInside)checkbox3.setImage(UIImage(systemName: "square"), for:.normal)checkbox3.setImage(UIImage(systemName: "checkmark.square"), for:.selected)checkbox3.translatesAutoresizingMaskIntoConstraints = falseview.addSubview(checkbox3)// 添加约束NSLayoutConstraint.activate([checkbox1.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 50),checkbox1.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),checkbox2.topAnchor.constraint(equalTo: checkbox1.bottomAnchor, constant: 20),checkbox2.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),checkbox3.topAnchor.constraint(equalTo: checkbox2.bottomAnchor, constant: 20),checkbox3.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20)])}@objc func checkboxTapped(_ sender: UIButton) {sender.isSelected.toggle()// 实现联动逻辑,例如,当选中一个复选框时,取消其他复选框的选中状态if sender == checkbox1 {if sender.isSelected {checkbox2.isSelected = falsecheckbox3.isSelected = false}} else if sender == checkbox2 {if sender.isSelected {checkbox1.isSelected = falsecheckbox3.isSelected = false}} else if sender == checkbox3 {if sender.isSelected {checkbox1.isSelected = falsecheckbox2.isSelected = false}}}
}

代码解释

  1. 导入 UIKit 框架:这是 iOS 开发中构建用户界面的基本框架。
  2. 定义 UIButton 实例:创建三个 UIButton 实例,即 checkbox1checkbox2 和 checkbox3,它们将作为复选框使用。
  3. 视图加载方法
    • 在 viewDidLoad 方法中,为每个按钮设置显示的文本和文本颜色,将其添加到视图中,并添加点击事件的处理方法 checkboxTapped
    • 为每个按钮设置正常状态和选中状态的图像,使用 UIImage(systemName:) 方法从系统图标库中获取图标。
    • 为每个按钮设置 translatesAutoresizingMaskIntoConstraints 为 false,以便使用 Auto Layout 进行布局。
    • 使用 NSLayoutConstraint.activate 为按钮添加约束,使它们垂直排列并距视图左边和顶部有一定距离。
  4. 点击事件处理方法
    • checkboxTapped 方法在按钮被点击时调用。
    • 调用 toggle() 方法切换按钮的选中状态。
    • 根据点击的按钮不同,实现联动逻辑:如果选中一个复选框,将其他复选框设置为未选中状态。

使用说明

  1. 创建一个新的 iOS 项目,将上述代码添加到 ViewController.swift 文件中。
  2. 运行项目,你将看到三个带有复选框的选项垂直排列在屏幕上。
  3. 点击其中一个复选框,它将被选中,同时其他复选框将自动取消选中。

如果你想要实现更复杂的联动逻辑,例如多选多个选项,或者根据不同选项的组合执行不同的操作,可以根据上述代码进行扩展和修改。你可以添加更多的 UIButton 实例,并修改 checkboxTapped 方法中的逻辑来满足你的需求。

请注意,在实际开发中,为了更好的代码组织和可维护性,你可能需要将界面元素和逻辑代码分离到不同的文件或类中,例如使用 UIView 的子类来封装这些复选框,以及使用 UITableView 或 UICollectionView 来处理大量的选项。


http://www.ppmy.cn/server/158650.html

相关文章

VMWARE linux LVM 扩容磁盘分区

VMWARE设置 关闭虚拟机,删除快照,编辑虚拟机设置-硬件-硬盘-扩展磁盘容量(填写扩容后的最终大小)。进入虚拟机查看当前分区情况 [rootlocalhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 1…

Windows电脑本地安装并随时随地远程使用MusicGPT生成AI音乐

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 在如今快节奏的生活里,音乐不仅能够抚慰我们的心灵,还能激发无限创意。想象一下,在忙碌的工作间隙或闲暇时光中,只需输…

【声音场景分类--论文阅读】

1.基于小波时频图特征在声音场景分类 基于小波时频图特征在声音场景分类任务中的表现 2.增强增强高效音频分类网络 https://arxiv.org/pdf/2204.11479v5 https://github.com/Alibaba-MIIL/AudioClassfication 音频分类网络如图4所示。在此阶段,主要重点是建立一…

如何规模化实现完全自动驾驶?Mobileye提出解题“新”思路

在CES 2025上,Mobileye展示了端到端自动驾驶系统Mobileye Drive™,通过高度集成的传感器、算法和计算平台,可以实现自动驾驶功能的全覆盖。 Mobileye创始人兼首席执行官Amnon Shashua教授 期间,Mobileye创始人兼首席执行官Amnon …

C++实现设计模式---模板方法模式 (Template Method)

模板方法模式 (Template Method) 模板方法模式 是一种行为型设计模式,它定义了一个操作中的算法骨架,将某些步骤的实现延迟到子类。通过模板方法,子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 意图 在一个方法中定义算法的骨…

力扣264. 丑数 II

给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法:L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…

C++例程:使用I/O模拟IIC接口(6)

完整的STM32F405代码工程I2C驱动源代码跟踪 一)myiic.c #include "myiic.h" #include "delay.h" #include "stm32f4xx_rcc.h" //初始化IIC void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphCl…

MC1.12.2 macOS高清修复OptiFine运行崩溃

最近在玩RLCraft,在windows中运行正常的,移植到macOS中发现如果加载OptiFine模组就会崩溃 报错日志 报错日志如下,其中已经包含了各种版本信息,我就不单独说明了。这里说一下,报错的时候用的是oracle jdk x64的&…