我正在编写的应用程序涉及具有轻微噪音滤镜纹理的按钮,可以是任何尺寸。对于标准按钮,我只使用resizableImageWithCapInsets:
,但由于纹理,这会导致在生成的按钮上出现异常伪像。
我想到的解决方案是将Core Image单色滤镜与随机噪声滤镜结合使用,将噪点纹理添加到普通图像中。理论上这是有效的,并且在实践中已经证明这是有效的(一个例子here)但是这些都是在调用CI代码时已知按钮大小的情况。
我正在寻找的是使用外观代理,因此在整个应用中,我可以简单地设置UIBarButtonItems
的样式。
有没有办法可以通过外观代理将这些CI过滤器应用于按钮,或者这不可能吗?像UIImage上的类别会增加噪音吗?我不完全确定外观代理实际上会调用该代码。
感谢任何帮助
答案 0 :(得分:0)
好的所以我终于解决了它,但发现了一些东西。
似乎你可以在UIImage上创建一个类别并在外观代理中使用它。我创建了一个添加噪音的类别,它似乎部分起作用,但我无法看到我想要的,因为它不能很好地渲染,但在编码的过程中发现了另一种方法
resizableImageWithCapInsets:resizingMode:
因为我处理的纹理只是噪音,它可能是平铺的,所以不是图像现在被拉伸,而是图像的中心是平铺的,这给了我所需的外观:)