iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 在iOS中使用混合模式堆叠UIViews大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有两个不同的UI ImageViews.我想使顶级UIImageView混合使用屏幕混合模式与底部的UIImageView. 我知道CALayer的财产:composiTingFilter,我知道它在iOS中不起作用.我已经搜索了很多解决方案,我已经发现如何应用子类UIView并覆盖drawRect. 我已经尝试将drawRect的上下文设置为屏幕混合模式,尽管它仍然正常地绘制每个图像.也许我做
我有两个不同的UI ImageViews.我想使顶级UIImageView混合使用屏幕混合模式与底部的UIImageView.

我知道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所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。