最近一个同事使用UIImageView创建图片后,使用shader无效
经过查证发现这个图片如果是拉伸就有效,而九宫格无效
继续深挖 发现setScale9Enabled为true后,创建image的时候Scale9Sprite::createSlicedSprites()
会将原本的sprite替换为9个sprite,
可能有人会疑惑作者写这一部分的时候大部分sprite的设置会保留,
但是不知道为什么shader相关的却没有分别赋值。
其实是因为不少shader是无法全体适用的,比如流光效果,光照效果,如果分配到九个sprite上跟原本的效果就是大相径庭了。
而且可能会出现性能问题,所以还是推荐不要用九宫格来做shader,如果必须要用还是用普通的拉伸更靠谱一点。