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

相关文章

JavaSE——封装、继承和多态

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

哈希表的封装和位图

文章目录 2 封装2.1 基础框架2.2 迭代器(1)2.3 迭代器(2) 3. 位图3.1 问题引入3.2 左移和右移?3.3 位图的实现3.4 位图的题目3.5 位图的应用 2 封装 2.1 基础框架 文章 有了前面map和set封装的经验,容易写出下面的代码 // UnorderedSet.h#pragma once#include "HashTable.h"

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改