swift ~星星评分(支持手势评分) ~封装demo

2024-03-17 11:50

本文主要是介绍swift ~星星评分(支持手势评分) ~封装demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄​​​​​​​

 

                      QQ群:807236138  群称: iOS 技术交流学习群

                      QQ群:713799633   群称: iOS技术交流学习群-2
 

一、使用 参考核心类SHStarRatingView.swift

     下载地址: ​​​​​​​星星评分: swift实现星星评分功能(支持手势评分)

//
//  ViewController.swift
//  SHStarRatingView
//
//  Created by shihu on 2021/11/3.
//import UIKitclass ViewController: UIViewController {let width: Int = 30 // 星星的宽、高private lazy var starRatingView: SHStarRatingView = {let temp = SHStarRatingView(frame: CGRect(x: 10, y: 200, width: width * 5 + 5 , height: width))temp.setBottomImageName("icon_star_gray", topIconStr: "icon_star_yellow", starCount: 5)temp.allowIncompleteStar = true  // 是否允许, 整颗星temp.allowAnimation = true  // 动画temp.allowProhibitManuallyStar = false // 禁止手动评分temp.scorePercent = 3.6 / 5 // 默认评分  (0 - 1)temp.delegate = selftemp.backgroundColor = .yellowreturn temp}()lazy var nuberLabel: UILabel = { // 评分数值let temp: UILabel = UILabel(frame: CGRect(x: 0, y: 260, width: 300, height: 20))temp.text = "3.60"temp.textAlignment = .centertemp.textColor = .redtemp.backgroundColor = .yellowreturn temp}()override func viewDidLoad() {super.viewDidLoad()self.view.addSubview(self.starRatingView)  //添加....五角星...self.view.addSubview(self.nuberLabel)      //添加....五角星数值...}}// MARK: - Private methodextension ViewController: SHStarRatingViewDelegate {func starRateView(_ starRateView: SHStarRatingView, currentScorePercent: CGFloat) {print("newScorePercent======\(currentScorePercent * 5)")self.nuberLabel.text = "\(currentScorePercent * 5)"}}

二、demo 效果图

下载 demo

     码云:https://gitee.com/ShiHu132/SHUnitView

     github:https://gitee.com/ShiHu132/SHUnitView

三、 界面实现截图

谢谢!!!

本账号主要分享我成长过程中的各种心得感悟,包括技术总结, iOS、Swift 和 Mac 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!

这篇关于swift ~星星评分(支持手势评分) ~封装demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/818868

相关文章

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。