如何解决使视野从周围环境中脱颖而出带反色的边框层?
我有一个视图(在本例中为 Button
),它后面/下面的内容可以四处移动(ScrollView
)。该按钮只是纯白色和黑色文本,没有任何边框。当 View
后面的内容为白色时,它并没有像我希望的那样突出。 (我当然可以用黑色边框解决这个问题……但是……)
我的想法是在按钮周围设置一个边框,该边框与其后面的视图(像素)颜色相反。所以边框总是与背景形成对比,并随着背后的内容不断变化。
我用谷歌搜索了一下,研究了视觉效果层和一些我不记得术语的更复杂的(在我的脑海中)图形内容。
如果您知道如何处理此问题,请告诉我。我真的很想看看它会是什么样子。
祝你有美好的一天!
解决方法
我认为您无法使用 CALayer 和边框创建使用基于当前图层后面图层中像素颜色的颜色的边框。
我建议做的是在视图的 CALayer 中添加第二个 CALayer,在两个维度上插入 -1(使 1 像素大。)让我们称其为环绕层。然后使环绕层的边框颜色为白色,视图的 layer.borderColor 为黑色(或反之亦然)。您可以使环绕层的边框颜色为 50% 不透明,这样它只会使下方的像素变亮/变暗而不会完全遮住它们,那就是足以增加对比度并使视图的边框显示出来,而不管其下的内容如何。
我以前使用过这种技术,效果很好。
编辑:
检查项目 https://github.com/DuncanMC/MaskableImageView.git。该项目演示了使用图像作为遮罩层来隐藏/显示视图的内容。
该项目中的类 MaskableView 绘制了一个圆形“光标”,显示它在何处显示/屏蔽其子视图的内容(示例应用程序中为图像和标签)。光标在中间为黄色,带有它周围有一个部分透明的黑色外圈。无论被绘制的图像部分的颜色如何,这都能提供良好的对比度。
MaskableView
类具有允许调用者设置用于“光标”圆圈的颜色的属性。
下面我发布了一个简短的动画,展示了橡皮擦工具的样子,里面有一个黄色的内圈和一个 1/2 透明的黑色外圈。
如果没有外黑圈,黄色内圈往往会在图像的较亮部分丢失。结合明亮的彩色内圈和部分透明的深色外圈,很容易在任何背景上看到:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。