我有2个UI ImageViews显示在彼此之上.其中一个可以使用手势识别器拖动.

有没有一种方法可以使用像Multiply这样的混合模式渲染ImageViews?这样当它们移动到每个上面时,它们会以混合模式渲染?

解决方法

你必须覆盖父视图上的drawRect:函数,以实现这样的事情:
- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    [image1.image drawInRect:image1.frame blendMode:kCGBlendModeMultiply alpha:1];
    [image2.image drawInRect:image2.frame blendMode:kCGBlendModeMultiply alpha:1];
    [super drawRect:rect];
}

它的作用是获取当前的graphicsContext,并使用乘法混合模式将两个图像绘制到其中.

为了能够看到这一点,您需要将两个图像的alpha设置为0,否则新绘制的内容将被遮挡.由于父视图正在重绘它们,因此您将看到生成的乘法版本.

此外,每当图像的位置更新时,您需要在父视图上调用setNeedsdisplay,以强制它再次调用drawRect.

我确信有可能更有效的方法来利用Quartz 2D来实现你想要的东西,但这可能是最简单的.

ios – 使用Multiply混合模式覆盖UIImageViews?的更多相关文章

  1. .net – 给定选择,混合模式程序集与单独的互操作DLL的优缺点是什么?

    当“混合模式组合”和“单独的互操作”版本提供第三方组件时,每个组件的优点和缺点是什么?混合模式组合似乎在我的项目中工作正常,没有GAC安装.很少有一个更少的DLL.感觉更整洁那么有什么缺点呢?

  2. ios – 使用Multiply混合模式覆盖UIImageViews?

    我有2个UIImageViews显示在彼此之上.其中一个可以使用手势识别器拖动.有没有一种方法可以使用像Multiply这样的混合模式渲染ImageViews?

  3. c# – 使用混合模式颜色在另一个图像上绘制图像

    在Photoshop中,您可以选择“颜色”将混合模式设置为下一个较低层:如果图像顶部只有一个渐变,结果可能如下所示:我在某处找到的颜色混合模式的描述是:颜色将下层的色调和饱和度改变为上层的色调和饱和度,但仅留下亮度.到目前为止我的代码是:但那是–当然–只是在较低的图像上绘画.所以问题是:如何使用Photoshop中提供的混合模式“颜色”在另一个图像上绘制图像?

  4. 混合模式程序集(C/C++LI项目)是否可以在.NET Core上运行?

    我有一个使用C/C++LI项目的代码库,它通过瘦包装类将C类暴露给CLR.例如…C项目中的C代码混合模式程序集中的C/C++LI代码据我所知,混合模式程序集几乎只能在Windows.NET上运行.我希望我不需要重新考虑组件并使用P/Invoke,这将为我提供跨平台支持.有谁知道.NETCore是否支持混合模式程序集?

  5. 如何在Cocos2D 1.0 中掩饰一个精灵(三)

    hopy;)尝试编译运行,在你每一次点击屏幕的时候,你将看到我可爱的妻子制作的随机日历图片:现在我们的app里已经有了像样的框架了,让我们开始实现掩饰效果吧!

  6. cocos2dx  混合模式

    如果学习过OpenGL,就知道里面使用glBlendFunc函数实现的。在cocos2d-x里肯定也有,对于精灵,可以使用mySprite->setBlendFunc()来现。下面举一个例子:[cpp]viewplaincopy//////////////////////////////backgroundCCSprite*helloSprite=CCSprite::create;helloSprite->setPosition;this->addChild;///////////////////////

  7. 制作新手引导高亮区域方法之一:混合模式

    demo下载:Quick-x-HighlightArea-master.zip1、混合模式(1)首先创建一个全屏的CCRenderTexture实例这里使用的黑色0.6的透明度,看起来的效果就是一层黑色半透明的遮罩叠在游戏界面上面:1234localpRt=CCRenderTexture:create(size.width,size.height)localcolor=ccc3(0,0)--黑色l

  8. cocos2d粒子系统--粒子编辑器Parti…

    CCParticleSystemQuad方形粒子系统,在3代以后的机器上运行的比较快,他会消耗更多的内存和cpu。使用预处理器ARCH_OPTIMAL_PARTICLE_SYstem来定义粒子系统,在代码编译过程中来判断使用哪一个粒子系统。会自动的根据机型选择合适的粒子系统例:@interfaceCCParticleExplosion:ARCH_OPTIMAL_PARTICLE_SYstem2、有关粒子贴图粒子贴图必须小于64x64的,越小越好。好了,下一步我们就来学习下粒子工具ParticleDesig

  9. APP三种开发模式--及---HybridApp解决方案_No1_混合模式(Hybrid)App开发概述

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  10. html5 – Chrome中的Chrome css3混合混合模式错误

    我有两个重叠的叠加层,叠加的部分使用混合混合模式混合.在chrome中应用了效果但是使用此属性的div有奇怪的闪烁.这是闪烁的原因以及如何解决.我已经在firefox上测试了它的良好运行但不是在chrome中.Screenshot上面的图像是一旦动画结束,一旦完成,左边的div开始连续闪烁.解决方法我有这个问题,发现它似乎是由混浊与混合混合模式的组合引起的.解决方案是添加一个将改变的规则:不透明度

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部