复合颜色:iPhone 上的 CALayer 和混合模式

2024-03-21

我正在尝试在 iPhone 上使用核心图像。我可以使用石英合成颜色来绘制 uiview,但我想将每个组件分成CALayer(UIview消耗较多资源)。

所以我有一个白色蒙版,我想用它来过滤背景位图,并且我想尝试不同的混合模式。不幸的是,这些图层只是“添加”它们的颜色。

这是我的代码:

@implementation WhiteLayerHelper

    - (void)drawLayer:(CALayer *)theLayer
            inContext:(CGContextRef)myContext
    {
        // draw a white overlay, with special blending and alpha values, so that the saturation can be animated
        CGContextSetBlendMode(myContext,kCGBlendModeSaturation);
        CGContextSetRGBFillColor(myContext,1.0,1.0,1.0,0.9);
        CGContextFillRect(myContext,[UIScreen mainScreen].bounds);

    }

@end

这是主要视图drawrect代码,我在其中使用我的 CALayer:

- (void)drawRect:(CGRect)rect {
    //get the drawing context
    CGContextRef myContext = UIGraphicsGetCurrentContext();
    // draw the background
    [self fillContext:myContext withBounds:m_overlayRect withImage:m_currentImage];
    [whiteLayer renderInContext:myContext];

}

有什么不对?


我设法通过将多个 CALayer 直接绘制到 UIView 的图形上下文中来获得合成多个 CALayer 的效果。

-(void)drawRect:(CGRect)rect {
 CGContextRef c = UIGraphicsGetCurrentContext();
 CGContextSetBlendMode(c, kCGBlendModeDifference);
 [myLayer drawInContext:c];
}

顺便说一句,我没有将图层添加为视图图层的子图层(也就是说,我从未调用过 [myView.layer addSublayer:myLayer])

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复合颜色:iPhone 上的 CALayer 和混合模式 的相关文章

  • UIImageView 没有调用drawRect

    我的 IB 中有一个 UIImageView 我用一个方法 drawRect 创建了 UIImageView 的子类 implementation UIImageViewLine void drawRect CGRect rect NSLo
  • UITableView:以编程方式滚动内容视图

    您好 我正在尝试转发从 UITableView 前面的 UIView 收到的触摸 但这样做我不能再让桌子滚动了 see here https stackoverflow com questions 3417808 uitableview c
  • 加速度计和校准 - iPhone SDK

    我需要在 iPhone 游戏中使用加速计的功能 我只需通过倾斜设备来移动图像即可 然而 YouTube 上的大多数视频仅显示以某种方式反转的倾斜功能 而忘记包含校准 我希望用户将他们的设备校准到他们所处的任何位置 有谁知道我应该如何开始 我
  • 如何在iphone中画同心圆?

    我想画一个戒指 环应填充在外圆中 我参考了一个文档http developer apple com library mac documentation GraphicsImaging Conceptual drawingwithquartz
  • UITableViewCell - 理解“可重用”

    UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPath static NSString reuseIdentif
  • 使用 ABAddressBookRegisterExternalChangeCallback 注册的地址簿更改回调永远不会被调用 (iOS 8)

    我已经找到了很多与此相关的示例 但在阅读整个 ABAddressBook 文档后 我仍然无法弄清楚为什么在我的情况下 我的更改回调没有被调用 我只是设置了一个地址簿并为其注册了一个回调函数 我可以很好地访问地址簿 但无论我在 联系人 应用程
  • iOS后台Location不发送http请求

    我的应用程序需要在后台跟踪用户位置 但无法发送 获取 请求 当应用程序到达前台时 http 请求会立即发送 我正在使用 RestKit 来处理所有网络请求 并且遵循本教程 http www mindsizzlers com 2011 07
  • Objective C 中如何对数组进行排序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 iPhone 中对包含数字作为字符串的数组进行排序 https stackoverflow com questions 6097119 how to sort array having num
  • 重用cocos2d动作

    是否可以 并且是一个好的实践 为使用相同操作的多个 CCSprite 重用相同的操作 因为如果我有 10 个 CCSprite 所有这些都需要缩放 我创建了一个名为scaleAction 的缩放操作 是否可以对精灵重复使用相同的动作 当我尝
  • 已加载 nib 文件但未设置视图出口

    我不小心删除了universityPicker xib 然后用相同的名称创建了一个新的 但无法连接 文件崩溃并给出此消息 reason UIViewController loadViewFromNibNamed bundle loaded
  • 在 iPhone 通讯簿中创建群组

    我正在开发一个 iPhone 应用程序 该应用程序使用将联系人添加到地址簿中 我已经能够将联系人添加到地址簿 但我面临的问题是在将联系人记录添加到我创建的组时 该联系人将在不在已创建组内的所有联系人下创建 下面是我使用过的代码 create
  • 从 iOS/Android 上的网络应用程序调用本机日期选择器

    我正在尝试探索使用 HTML5 在不同平台上运行本机 Web 应用程序的可能性 目前 一个
  • UIWebview 中的 NSString

    我有一个NSString和我的项目中的 webView iPhone 的 Objective C 我称之为index html在 webView 及其内部我插入了我的脚本 javascript 如何在脚本中将 NSString 作为 var
  • 即使只有单个项目,也强制 uiscrollview 弹跳滚动

    我有一个 UIScrollView 其中包含不同数量的项目 子视图 当有多个项目时 滚动弹跳起作用 然而 有时滚动视图应该只有一项 我想向用户提供他们的滚动被识别的反馈 从而产生反弹效果 但是 UIScrollView 仅禁用一项滚动 答案
  • 推送通知发送成功,但设备收不到(偶尔)

    从昨天开始 我一直遇到一些设备无法收到推送通知的问题 证书 设备令牌似乎是正确的 直到昨天 该设备才能成功接收推送通知 在服务器端 没有错误或连接拒绝 并且推送通知似乎每次都成功发送 但仍然有很多情况下设备无法正确接收推送 一些周边信息 我
  • 为什么 UIScrollView 在顶部留有空间并且不滚动到底部

    我是 Objective C 编程新手 我正在使用 UIScrollView 及其上的一些标签 图像和文本视图 我已关闭自动布局 并已尝试打开 调整滚动视图插图 标题中描述的情况 和关闭 不滚动 这是我插入 viewDidLoad 的内容
  • 在ios中通过社交框架登录Facebook

    我是 iOS 开发新手 我必须将 Facebook 登录集成到我的 iOS 应用程序中 当用户登录时 它会获取所有信息并将其导航到主屏幕 我已经通过 Facebook 最新的 SDK 完成了此操作 但我希望通过社交框架完成此操作 我浏览了很
  • 如何使用 Codable 解析此 JSON?

    我一直在尝试从我的中解析这个对象JSON并不断收到此错误 错误 类型不匹配 Swift Array Swift DecodingError Context codingPath debugDescription 本应解码数组 但找到了字典
  • iPhone NSDateFormatter 时区转换

    我正在尝试创建一个格式化程序 将显示的日期格式转换为 NSDate 对象 NSString dateStr 2010 06 21T19 00 00 05 00 NSDateFormatter dateFormat NSDateFormatt
  • UISlider最大值调整

    我有三个滑块 这些显示了我需要的不同元素的百分比 所有元素的最大值是 100 a b c 100 现在这些都相互依赖并有助于制作饼图 目前都可以设置为最大值 100 如何从逻辑上使这种依赖性和最大值成为可能 提前致谢 在处理滑块更改的方法中

随机推荐

  • 让 Preferences API 在 Android 和 PC 上运行

    我想从在 PC 或 Android 手机上运行的草图中保存用户首选项 并尽可能使用标准 Java 方式 中的相同代码 适合我的目的的理想候选者似乎是 java util prefs Preferences 类 因此 我编写了一个小测试脚本来
  • 使用 socket.io 和 webpack-dev-server 时出错

    快速问一下大家 我正在尝试将 webpack dev server 与 socketio 一起使用 但是在尝试了不同的操作之后 我认为两个客户端都在监听相同的端口 3000 并且最终出现了某种握手错误如果我不在同一端口上使用 webpack
  • C 性能和编译选项

    对于像选择排序这样的简单算法 我有两个类似的实现 java 和 c public interface SortingAlgorithm public void sort int a public class SelectionSort im
  • 从选项卡转到根页面

    我想知道如何返回到 rootPage 中定义的appComponent使用选项卡时 setRoot 方法没有按我的预期工作 当它在选项卡页面中使用时 导航堆栈不会被清除 在 主页 上 后退按钮可见 而不是导航切换 并且显示选项卡的标题 默认
  • ASP.NET MVC = 具有 .NET 类库的经典 ASP。真的吗?

    This https web archive org web 20130307101732 http geekswithblogs net 80 AzamSharp archive 2007 12 11 117590 aspx博客文章和我们
  • 有什么方法可以为 WebAPI 项目生成 C# HTTPClient 包装器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在即将推出的项目中 我们希望使用 ASP NET WebAPI 2 向我们的网站和浏览器客户端公开服务
  • Postgres SSL 错误

    我正在尝试通过 SSH 和 drush 命令行 shell 运行 Drupal 迁移 将数据从 postgres 数据库复制到 mysql 它工作正常一段时间 大约 5 分钟左右 但随后我收到错误 SQLSTATE HY000 Genera
  • MongoDB、Redis 与 Cassandra 的快速写入、临时行存储解决方案

    我正在构建一个跟踪和验证广告展示次数和点击次数的系统 这意味着有很多插入命令 平均每秒约 90 个 峰值为 250 个 和一些读取操作 但重点是性能并使其速度极快 该系统目前使用 MongoDB 但从那时起我就开始使用 Cassandra
  • 您可以使用实体框架 4.1 代码优先方法创建 sql 视图/存储过程吗

    Entity Framework 4 1 Code First 非常适合创建表和关系 是否可以使用代码优先方法创建 sql 视图或存储过程 任何有关此的指示都将受到高度赞赏 多谢 我们在实体框架代码优先迁移中支持存储过程 我们的方法是创建一
  • 使用的内存:std::list 与std::forward_list

    因为list比forward list多了一个指针 前一个指针 所以如果它们都保存相同数量的元素 即1 然后 如果我重复调用 resize 越来越大 forward list 必须能够调整得比 list 大得多 测试代码 include
  • 为什么在 Backbone 模型中使用 getter 和 setter?

    为什么 Backbone 模型中有 getter 和 setter 没有私有 受保护的属性 因此 getter 和 setter 对于封装来说有点无用 我知道它们对于验证很有用 但除此之外 如果我们可以绕过它们 它们的用处是什么 set不是
  • jacoco 的准备代理不生成 jacoco.exec 文件

    我正在运行 Jacoco 的 Maven 插件 这prepare agent目标运行良好 但不生成jacoco exec由于某种原因归档 随后report目标抱怨Skipping JaCoCo execution due to missin
  • 捕获Like按钮的点击事件

    我正在尝试订阅 赞 按钮点击 这是我的代码 div div
  • C#(对象数组)对象引用未设置为对象的实例

    我在这一行中收到对象引用错误 emp count emp id int Parse parts 0 在这段代码中 该程序从文件读取并存储在对象数组中 public partial class Form1 Form public Form1
  • UITextField inputView 显示撤消、重做、粘贴按钮

    我创建了一个自定义inputView for my UITextField 视图本身看起来和功能都很棒 但在 iPad 上 我的自定义上方出现了撤消 重做和粘贴按钮inputView 如何删除这些按钮 它们没有任何功能 但应该将其删除 使用
  • persistence.xml (JPA) 中的环境变量扩展

    我正在开发一个使用 JPA 的 Eclipse RCP 插件 我尝试通过运行时提供给 JVM 的变量来指定数据库路径 该属性设置正确 但数据库是在以变量名称命名的文件夹中创建的 此处 DBHOME
  • 如何对我的游戏进行编码,使其能够在 Android 设备的每种分辨率上运行? (与统一)

    我有一个在 Unity 中以 480x320 分辨率制作的游戏 我已在构建设置中对其进行了设置 但我想为每台 Android 设备的各种分辨率发布我的游戏 我怎样才能告诉 Unity 将我的游戏扩展到设备的分辨率 可以做吗 提前致谢 您问题
  • Powershell 最初被禁用。为什么谨慎的管理员可能会主张将其禁用?

    默认情况下 Powershell 最初是禁用的 大概是出于安全原因 当我要求启用它以便我可以使用它时 管理员会谨慎地采取可能使服务器更容易受到攻击的操作 因此 它没有启用 我只能等待 诚然 微软在安全方面有着糟糕的记录 并且从理论上讲 禁用
  • 显式接口实现不能是虚拟的

    作为记录 我已经看过这个连接项目 https connect microsoft com VisualStudio feedback details 93163 allow explicit interface implementation
  • 复合颜色:iPhone 上的 CALayer 和混合模式

    我正在尝试在 iPhone 上使用核心图像 我可以使用石英合成颜色来绘制 uiview 但我想将每个组件分成CALayer UIview消耗较多资源 所以我有一个白色蒙版 我想用它来过滤背景位图 并且我想尝试不同的混合模式 不幸的是 这些图