You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高亮效果实现:如何用CALayer调整父视图Alpha实现高亮笔效果

按钮集合的三种状态展示与实现

按钮初始状态示意图

这些按钮对应不同的集合,每个集合包含以下三种状态:

  • 空状态:以“K7s”为例,通过设置 K7s.alpha = 0.4 标识为空状态
  • 满状态:以“Q7s”为例,通过设置 Q7s.alpha = 1.0 同时将 borderWidth 设为2标识为满状态
  • 部分填充状态:以“J7s”为例,通过添加小框架标识为部分填充状态。要求该小框架为CALayer,能够将其父图层(J7s)在该框架范围内的Alpha值调整为1.0,最终效果如下:

部分填充状态效果示意图

实现该部分填充效果的代码如下:

let highlighterLayer = CALayer()
highlighterLayer.borderWidth = 1
highlighterLayer.bounds = CGRect(x: 0, y: 0, width: buttonSize.width, height: percentHeight)
Buttons[tag].layer.addSublayer(highlighterLayer)
highlighterLayer.position = CGPoint(x: Buttons[tag].bounds.midX, y: Buttons[tag].bounds.midY)
Highlights[tag] = highlighterLayer 

内容的提问来源于stack exchange,提问作者Chameleon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:54:21