Cocoa Touch - 使用叠加视图添加纹理

2024-04-19

我有一组作为 UIView 的图块,它们具有可编程的背景颜色,并且每个图块 可以是不同的颜色。我想为每一个添加纹理,比如侧光斜角。这可以通过覆盖视图或其他方法来完成吗?

我正在寻找不需要为每种情况提供自定义图像文件的建议。


这可能会对某人有所帮助,尽管这是从其他主题中拼凑而成的。 为了创建一个具有任意颜色的斜面平铺图像以用于正常和视网膜显示,我在 Photoshop 中制作了一个斜面图像并将饱和度设置为零,制作了一个名为tileBevel.png

我还为视网膜显示器创建了一个([email protected] /cdn-cgi/l/email-protection)

这是代码:

+ (UIImage*) createTileWithColor:(UIColor*)tileColor {

    int pixelsHigh = 44;
    int pixelsWide = 46;
    UIImage *bottomImage;

    if([UIScreen respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
        pixelsHigh *= 2;
        pixelsWide *= 2;
        bottomImage = [UIImage imageNamed:@"[email protected] /cdn-cgi/l/email-protection"];        
    }
    else {
        bottomImage = [UIImage imageNamed:@"tileBevel.png"];
    }

    CGImageRef theCGImage = NULL;
    CGContextRef tileBitmapContext = NULL;

    CGRect rectangle = CGRectMake(0,0,pixelsWide,pixelsHigh);

    UIGraphicsBeginImageContext(rectangle.size);

    [bottomImage drawInRect:rectangle];

    tileBitmapContext = UIGraphicsGetCurrentContext();

    CGContextSetBlendMode(tileBitmapContext, kCGBlendModeOverlay);

    CGContextSetFillColorWithColor(tileBitmapContext, tileColor.CGColor);        
    CGContextFillRect(tileBitmapContext, rectangle);

    theCGImage=CGBitmapContextCreateImage(tileBitmapContext);

    UIGraphicsEndImageContext();

    return [UIImage imageWithCGImage:theCGImage];

}

这会检查是否使用视网膜显示器,调整要绘制的矩形的大小,选择适当的灰度基础图像,将混合模式设置为叠加,然后在底部图像的顶部绘制一个矩形。所有这些都是在由 BeginImageContext 和 EndImageContext 调用括起来的图形上下文中完成的。这些设置了 UIImage drawRect: 方法所需的当前上下文。 Core Graphics 函数需要上下文作为参数,该参数是通过调用获取当前上下文来获取的。

结果如下:

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

Cocoa Touch - 使用叠加视图添加纹理 的相关文章

  • UITextView自定义自动完成

    有没有办法为 UITextView 实现自定义自动完成 例如给它一个NSDictionary or NSArray需要注意的字符串 你必须自己编程 如果您实现 UITextViewDelegate 协议 则该函数 BOOL textView
  • CGColorRef 导致崩溃

    我的代码发生了崩溃 并且我一直跟踪到在传递 2 个 CGColorRefs 时发生崩溃的行 以下是对象 CGColorRef startColor UIColor colorWithWhite 0 92 alpha 1 0 CGColor
  • 如何创建凸起的标签栏项目,就像 Instagram 中的那样?

    如何在 UITabBar 中创建凸起项目 例如 Instagram 有这样的 我如何在我的应用程序中实现类似的目标 iDevRecipes 最近发布了有关如何重新创建这一内容的文章 尽管它不是由 Instagram 的开发人员编写的 查看这
  • UIControlEventTouchDragEnter 似乎不适用于捕获滑入控件的点击

    如果手指从外部拖动到控件的边界内 我想允许调用一个方法 我以为 UIControlEventTouchDragEnter 会做到这一点 但似乎并没有 有谁知道是否有一种方法可以根据点击滑入控件来触发操作 这就是我正在尝试的 但没有接到我的
  • iOS 6 中的模态视图控制器强制横向方向

    我有一个以纵向模式呈现的 UITabBarController 在其中一个选项卡上 我有一个以模态方式显示 UIViewController 的按钮 一个简单的故事板 segue 执行该操作 我希望这个模态视图以横向模式显示 但我无法让它自
  • 具有同步功能的 iPhone 离线应用程序

    我正在考虑构建一个可以在离线状态下和在线状态下一样运行的应用程序 由于应用程序在离线状态下无法与服务器通信 因此需要进行某种程度的同步 在规划 iPhone 同步离线操作时 有哪些值得阅读和开始思考的好工具 与苹果已经提供的工具来帮助解决这
  • 将渐变应用于 CAShapeLayer

    有人有将渐变应用于 CAShapeLayer 的经验吗 CAShapeLayer 是一个很棒的图层类 但它似乎只支持纯色填充着色 而我希望它具有渐变填充 实际上是一个可设置动画的渐变 与 CAShapeLayer 相关的所有其他内容 阴影
  • iOS 键盘颜色变化 - 键盘外观深色不粘

    在我们的应用程序中 我们将键盘外观设置为深色 正如预期的那样 这会产生一个黑色键盘 但是 如果显示键盘 并且我们按主页按钮 然后返回应用程序 键盘会变成白色 如图所示 有什么想法吗 这可能与键盘是全局对象这一事实有关 在任何给定时间 内存中
  • 从底部加载导航视图控制器

    我有四个 ViewControllers 其中 ViewControllers 使用以下方式加载UINavigationController 我能够一一切换到每个 ViewController 问题是 由于我使用的是 NavigationC
  • 使用自动布局以编程方式添加视图会出现“NSGenericException”,原因:“无法在视图上安装约束”

    我使用添加一个视图作为子视图 self view addSubview myView 这在纵向模式下效果很好 然而 它在风景中根本不起作用 如何以编程方式添加布局约束 我的视图当前看起来像纵向矩形 我需要它在横向模式下看起来像横向矩形 我尝
  • 如何向用户显示我的App当前的项目版本?

    我想将当前版本添加到我的应用程序的 关于 部分 如所附屏幕截图所示 Apple 提供版本控制 如何在您的应用程序中显示这些设置 经过进一步的搜索和测试 我自己找到了解决方案 NSDictionary infoDictionary NSBun
  • 翻转、生长和平移动画

    Look at 这个视频 http youtu be qIqv3OH9XIU t 1m12sMLB At Bat 应用程序的一部分 基本上 我只是想呈现一个modalViewController与UIModalPresentationFor
  • 正确地从 NSString 创建图像

    我正在从字符串变量创建图像 以下是创建图像的代码片段 UIImage imageFromText NSString text FontName UIFont font set the font type and size UIFont fo
  • 恢复从未付款过的用户的应用内购买

    我正在尝试在我的应用程序中测试应用程序内购买 当我与购买了应用程序内购买的测试用户恢复应用程序内购买时 一切正常 但是当我尝试与用户恢复应用内购买时didn t在我期望框架调用以下方法之前进行应用内购买 paymentQueue resto
  • 您是否标记 UIView 或将它们保留为属性?

    这主要是一个风格问题 但自从我开始为 iPhone 编程以来 我一直很好奇其他人的想法是什么 当您的 iPhone 应用程序中有一个 UIView 并且需要在应用程序的其他位置访问它时 通常在视图控制器中的另一个函数中 您是否喜欢用整数标记
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 如何按字母顺序对 UITableView 分区进行排序?

    我有一个包含 3 个类别的分段 UITableView 我正在使用这段代码 NSArray arrayOne NSArray arrayWithObjects one two three four nil NSDictionary dict
  • NSNotificationCenter 为“观察者”和“对象”保留什么类型的引用?

    任何人都可以澄清 阐明有关情况 NSNotificationCenter addObserver selector name object 观察者 和 对象 参数的通知中心保留哪些类型的引用 从通知中心删除观察者的最佳实践是什么 多线程应用
  • 当应用程序进入前台时,如何重新启动基于块的动画?

    我有以下基于块的动画 UIView animateWithDuration 0 5f delay 0 0f options UIViewAnimationOptionRepeat UIViewAnimationOptionAutorever

随机推荐

  • 如何使用Git在不同平台上拥有不同的工作目录结构?

    在 Windows 上我们有root folder1 root folder2 root folder3 在Linux上我们有root folder1 folder2 root folder1 folder3 我强烈希望不要使用子模块或子树
  • 复选框的自定义图片?

    我想将复选框显示为切换按钮 但我无法使用 CCS 将自定义图片应用到它 仍然绘制复选框 如何完成这个任务呢 My CSS input type checkbox settingsbutton border style none backgr
  • Eloquent ORM(laravel 5) 是否负责 SQL 注入?

    我在网上找不到它 但是 Eloquent ORM 是否像 PDO 准备好的语句一样处理 SQL 注入 没有任何框架能够 处理 SQL 注入 You处理 SQL 注入 框架可以提供方便地执行此操作的方法 但您仍然必须一致地使用这些方法 例如
  • CUDA素数生成

    当数据大小增加超过 260k 时 我的 CUDA 程序停止工作 它不打印任何内容 有人能告诉我为什么会发生这种情况吗 这是我的第一个 CUDA 程序 如果我想要更大的素数 如何在 CUDA 上使用大于 long long int 的数据类型
  • 在 Hive 中获取空值 使用 REGEX 创建和加载查询

    我有一个日志文件 我需要在其中使用 REGEX 存储数据 我尝试了下面的查询 但加载了所有 NULL 值 我已经检查了 REGEXhttp www regexr com http www regexr com 它对我的 数据工作正常 CRE
  • 从 VideoView 录制视频

    目前在做直播项目 成功实现视频直播 现在我的下一个任务是录制 VideoView 中正在播放的视频 我进行了搜索 能够找到捕获视频 但使用表面 相机 但在 VideoView 中我没有任何表面 任何帮助表示赞赏 你可以看到this http
  • 支持多屏幕的应用程序骨架

    正如我们所知 Android 随各种设备一起提供 这些设备具有不同的功能 功能 分辨率和屏幕尺寸 因此在开发支持的应用程序时 多个 小和大 屏幕存在尺寸和布局障碍 这导致了不同的组合屏幕尺寸 分辨率和 DPI这给 Android 设备的设计
  • gem install pg 错误:无法理解 Yosemite w/ Ruby 2.1.5 上的 kern.osversion `14.0.0'

    我使用 RVM 安装 Ruby 2 1 5 并再次运行捆绑包 现在 pg gem 无法安装 我收到此错误 gem install pg v 0 17 1 with pg config Applications Postgres app Co
  • c# 如何在 select 语句中指定 not ?

    我在数据集上使用 select 方法来检索符合我的条件的结果 foreach DataRow dr in dsPone2 Tables tt pone Select strWhereCondition dsPone Tables tt po
  • Tensorflow 中的平衡准确度分数

    我正在为高度不平衡的分类问题实现 CNN 并且我想在张量流中实现自定义指标以使用 选择最佳模型 回调 具体来说 我想实现平衡的准确度分数 这是每个类别的召回率的平均值 请参阅 sklearn 实现here https scikit lear
  • 如何将一个word文档的内容复制到另一个word文档中?

    我有一个包含一些文本和图像的Word文档 我想使用C 将word文档的内容复制到另一个word文档中 Thanks 尝试下面的代码 这可能对你有帮助 using System using System Collections Generic
  • Android 与 gms play 服务的依赖问题

    我收到一个错误 因为我正在尝试使用来自 Google 的应用程序索引库 同时还导入一个库 该库使用旧版本的 android gms 库作为不同的组件 来自 Google Play 服务的转换库 错误指出 所有 com google andr
  • delta Lake - 在 pyspark 中插入 sql 失败,并显示 java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.Alias

    Dataproc 集群是使用映像创建的2 0 x带有 Delta io 包io delta delta core 2 12 0 7 0 Spark版本是3 1 1 Spark shell 启动于 pyspark conf spark sql
  • “无法转换为 IComparer”

    我为装箱的RegistryItem对象定义了以下IComparer public class BoxedRegistryItemComparer IComparer public int Compare object left object
  • GPUImageAlphaBlendFilter 来自 GPUImageStillCamera 源的实时处理

    我正在使用 GPUImage 库 我正在尝试实时混合两个图像 并将它们显示在GPUImageView 我正在尝试将普通相机输入与其过滤版本进行 alpha 混合 这是我想做的 gt v camera alpha blend gt image
  • 多个docker容器日志

    我试图一次从多个 Docker 容器获取日志 顺序无关紧要 这将按预期工作 如果types ContainerLogsOption Follow设置为 false If types ContainerLogsOption Follow设置为
  • 获取鼠标下的窗口值

    我正在使用 Cocoa Objective C 我想问你是否可以从非活动窗口获取窗口信息 例如 pid 窗口名称 我的确切意思是 如果有两个不同任务的非全屏 也不是最大化 窗口 A 和 B 比如说 Chrome A 和 Firefox B
  • 是否可以在 C# 中为可空值和不可空值编写隐式转换运算符?

    我正在尝试写一个Alias课程使我能够 int n new Count 1 也就是说 它封装了一个int在这种情况下作为Count 它提供了一些类型安全性和域含义 同时它自动转换回底层类型 对于不可为空的引用类型 我还有另一个问题 我无法弄
  • 是否可以构造一个utf-8编解码器无法编码的unicode字符串?

    是否可以构造一个 unicode 字符串utf 8编解码器无法编码 从文档 https docs python org 2 library codecs html https docs python org 2 library codecs
  • Cocoa Touch - 使用叠加视图添加纹理

    我有一组作为 UIView 的图块 它们具有可编程的背景颜色 并且每个图块 可以是不同的颜色 我想为每一个添加纹理 比如侧光斜角 这可以通过覆盖视图或其他方法来完成吗 我正在寻找不需要为每种情况提供自定义图像文件的建议 这可能会对某人有所帮