我知道CALayer的财产:compositingFilter,我知道它在iOS中不起作用.我已经搜索了很多解决方案,我已经发现如何应用子类UIVIEw并覆盖drawRect.
我已经尝试将drawRect的上下文设置为屏幕混合模式,尽管它仍然正常地绘制每个图像.也许我做错了事情,或者方法应该是不同的.也许我需要OpenGL或CALayer才能实现这一点.有人可以帮忙吗?
解决方法 不幸的是,没有办法在iOS上的UIVIEws之间进行非复合混合. UIKit不提供功能,您已经注意到,CALayer也无法做到这一点.一般来说,在UIVIEw中实现-drawRect不会帮助你.您正在绘制一个空的位图 – 它不包含其背后的视图的位,因为这些可能随时更改(任何视图或图层可能都是动画). CA从根本上假定层的内容应该是彼此独立的.
你可以尝试,在-drawRect:
>创建一个图像上下文
>使用 – [CALayer renderInContext:]捕获您的视图中的视图
>从图像上下文创建图像
>将该图像绘制到您的视图中
>设置混合模式并绘制在顶部
但是,这将是缓慢而脆弱的,如果你动画任何意见,将不会奏效.我不会推荐它.
如果你真的需要这样做,你将不得不用OpenGL,where you’ve got more freedom来转换整个场景.
总结以上是内存溢出为你收集整理的objective-c – 在iOS中使用混合模式堆叠UIViews全部内容,希望文章能够帮你解决objective-c – 在iOS中使用混合模式堆叠UIViews所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)