关于objective C:圆形CALayer周围的深色边框 | 珊瑚贝

Darker border around circular CALayer


我正在创建一个自定义视图来显示单一颜色,它用于图像中的颜色选择器,因此颜色可能会很快改变。为了防止光标移动时颜色闪烁,我已经做到了,所以颜色变化的动画时间超过 0.2 秒。

我正在使用 CALayer 执行此操作。就目前而言,这几乎可以按预期工作,但是,我希望在图层周围有一个轮廓,其内容的颜色略深,类似于 OS X Yosemite close

  • 这可能仅仅是核心动画在 RGB 而不是 HSV/HSB 空间中工作的效果吗?当然,不能保证通过 RGB 立方体的路径不会通过不同亮度的颜色,即使它的端点同样明亮……
  • 嗯,这就是为什么我想使用过滤器或类似的东西,所以它显示实际的较暗版本,而不仅仅是一个过渡。
  • 您可以使用具有在 HSV 空间而不是 RGB 空间中显式插值的值的关键帧动画…
  • 你会怎么做?我是 CoreAnimation 的新手,我真的不知道。
  • 要点如下:您使用 CAKeyframeAnimation 而不是 CABasicAnimation,提供 values 和 keyTimes 数组,其中包含通过颜色空间的路径的分段表示。您可以使用您正在使用的相同 NSColor 便捷方法,但您将指定足够数量的颜色以在 HSV 空间中遵循所需的弧线,而不是通过 RGB 空间的默认线性轨迹。
  • 该方法效果很好,如果您只想将其添加为答案,我会接受。


通过使用 CAKeyframeAnimation 而不是 CABasicAnimation,您可以提供 values 和 keyTimes 数组,其中包含通过颜色空间的路径的分段表示。您可以使用您正在使用的相同 NSColor 便捷方法,但您将指定足够数量的颜色以在 HSV 空间中遵循所需的弧线,而不是通过 RGB 空间的默认线性轨迹。


来源:https://www.codenong.com/27495270/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9597.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?