客官,我先上图,先别走啊~

我在网上找了许久,无奈搜索能力奇差,没找到个类似的(不然想拿来抄抄,产品催交作业~),我只能挖一下自己有什么想法。本质上是一个UICollectionVIew,在每个item上画多个CAShapeLayer+UIBezierPath曲线,每一段橙色部分就是一个layer。

长按,在插入(替换)layer的过程,一直更新layer.path的x和width。
松手,在停止插入layer的过程中,一直记录下一个layer要开始画的位置

在模型上我用state属性来解决UICollectionViewCell的重用问题,state有4种状态:
0:初始状态所有cell没有layer 或 竖线右方cell还没画layer,移除layer防重用
1:当前cell在画layer
2:当前cell产生新的layer
3:竖线左方cell已经画过了layer

主要代码在StableLineView.m / ECKaraokeScoreView.m

声明:此DEMO并不能用于实际生产

DEMO.ZIP

简写一个K歌评分的iOS控件相关推荐

  1. 如何设计一个 iOS 控件?(iOS 控件完全解析)

    前言 一个控件从外在特征来说,主要是封装这几点: 交互方式 显示样式 数据使用 对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内 ...

  2. iOS控件之UILabel

    原文链接: iOS控件之UILabel 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/Major ...

  3. 想建一个带分隔条的label 控件;

    想建一个带分隔条的label 控件: Delphi / Windows SDK/API http://www.delphi2007.net/DelphiBase/html/delphi_2006120 ...

  4. 一个自定义的安卓验证码输入框控件、银行卡归属类型查询

    一个自定义的安卓验证码输入框控件.银行卡归属类型查询. GitHub:https://github.com/longer96/VerifyCode Dependency Gradle dependen ...

  5. css3 实现一个k歌效果和一个进度条的效果

    先看两个效果: 相信这两个效果很多人都想要,哈哈,我看到很多app,下载进度就是这样的,虽然平淡,但是很有用,只有你遇到了,才知道为什么有用了. 下面就简单分析一下实现原理. 首先,用到的css3特性 ...

  6. IOS控件学习:UILabel常用属性与用法(转)

    原文链接:http://duchengjiu.iteye.com/blog/2041391 保存下来随时查看,感谢分享. 参考网站: http://shijue.me/show_text/521c39 ...

  7. IOS控件学习:UILabel常用属性与用法

    #import "ViewController.h" #import <CoreText/CoreText.h>@interface ViewController () ...

  8. iOS控件——UITableView详解

    iOS开发中经常会用到UITableView,我们平时使用的软件中到处都可以看到它,比如微信.QQ.微博等软件基本上随处都是UITableView.最主要到还有iOS设置. 一  基本介绍 UITab ...

  9. iphone屏幕圆角插件_关于iOS控件设置圆角的一些个人看法(iOS 10.0.2)

    写在最前面:该文章使用的机器是iPhone 6(iOS 10.0.2),得出的结果跟iOS 8和iOS 9不太一样,关于iOS 8和iOS 9的结论,在最后有. 这几天看简书上的文章,看到几篇关于控件 ...

最新文章

  1. 一个利用Dataflow实现的Actor
  2. java: jstl.jar和standard.jar的下载地址与使用
  3. 数据结构第二章线性表学习笔记
  4. luogu P2572 [SCOI2010]序列操作
  5. [html] 解释下什么是ISISO8859-2字符集?
  6. 如何使用开源工具制作YouTube系列
  7. k8s springboot 文件_30分钟无痛上云——springboot项目部署到kubernetes
  8. jQuery CSS 操作函数
  9. 微软宣布以197亿美元现金收购语音识别巨头Nuance
  10. 模仿人人网客户端应用源码
  11. vs2008安装过程
  12. 计算机中丢失rtutil,api-ms-win-core-winrt-string-l1-1-0.dll从您的计算机中丢失
  13. 全键盘 掌上 linux,拥有QWERTY打字体验手机秒变掌上电脑 OPPO全键盘保护壳专利曝光...
  14. IE浏览器低版本判断及升级提示
  15. codeforces round#517
  16. oracle 序列和表关联,Oracle 创建和管理表、集群和序列
  17. 流量卡之家:智慧矿山开启5G时代 联通助推能源产业发展新纪元
  18. 【Leetcode】1137. 第 N 个泰波那契数
  19. 不属于c语言程序运算符,下面属于C语言关系运算符的是:( ) (A) (B) (C) =! (D) = - 试题答案网问答...
  20. HBuildX 打包说明(网站链接打包apk(app))

热门文章

  1. MR的案例:求每个部门的工资总额
  2. Omnifocus使用4【Applescript】
  3. 腾讯游戏数据库管理员Robin:仓管员团队的发展自白
  4. 谁还不知道,在线CAD有多好用!
  5. 结构化思维--让思考更清晰,让表达更准确。
  6. 被忽略的错误——这个我一直都是这么写的啊!
  7. java update needed_为什么会显示 Java Update Needed(需要 Java Update)消息:Your Java version is out of date(...
  8. Adobe Acrobat 9 Pro 注册码
  9. 华为商城 删除订单_顶级对决!iPhone12开售排队 余承东暗讽苹果!iPhone12和华为Mate40你选哪个?...
  10. PKU ACM/ICPC竞赛队最近八年比赛成绩