问题标签 [cglayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8147 浏览

ios - 分组 UITableViewCell 中的 clipsToBounds 和 maskToBounds

我试图让我的角被包含它UITextView的分组的圆角掩盖。UITableViewCell这是当前单元格的屏幕截图

分组 UITableViewCell 内的 UITextView

这是我用来防止角落与单元格边框重叠的一些代码。我都试过了

这显然不起作用,我错过了什么?

0 投票
1 回答
616 浏览

iphone - 如何向 UIView 添加对角线描边

如何向 UIImageView 添加一个看起来像 X 的红色笔触。

我想在 UIImageView 中添加 2 条对角红线,有没有办法使用图层或蒙版以编程方式进行?(不在drawRect中)

0 投票
1 回答
551 浏览

ios - iOS 在上下文中渲染图像在横向中无法按预期工作

下面的代码似乎可以很好地从视网膜分辨率的视图中渲染图像。问题是当我的设备处于横向时它似乎不起作用。它返回旋转 90 度的图像。

我需要为图像或上下文方向添加选项吗?

0 投票
2 回答
254 浏览

ios - renderInContext:UIGraphicsGetCurrentContext(), iOS 之后的插值问题

我有一些 UIVies 边缘到边缘对接。视图完全覆盖了 superView。显示效果很好,但是在渲染时相邻的边缘是可见的,也就是说它们之间会出现一条线。由于视图在显示中看起来很完美,我想它一定是导致这种情况的视图像素的插值。

有人知道怎么修这个东西吗?

下图是渲染图。在设备或模拟器上,这些线将不可见。 在此处输入图像描述

渲染代码

0 投票
2 回答
1387 浏览

ios - 使用 CGImage / CGLayer 在另一个线程中绘图

我有自定义 UICollectionViewCell 子类,我在其中使用剪切、描边和透明度进行绘制。它在 Simulator 和 iPhone 5 上运行良好,但在旧设备上存在明显的性能问题。

所以我想把耗时的绘图移到后台线程。由于始终在主线程上调用 -drawRect 方法,因此我最终将绘制的上下文保存到 CGImage (原始问题包含使用 CGLayer 的代码,但正如 Matt Long 指出的那样,它有点过时了)。

这是我在此类中的 drawRect 方法的实现:

定义此 renderSymbol 属性的渲染方法:

此设置在主线程上完美运行,但是当我用 NSOperationQueue 或 GCD 包装它时,我得到了很多不同的“无效上下文 0x0 ”错误。应用程序本身不会崩溃,但不会发生绘图。我想发布自定义创建的 CGContextRef 存在问题,但我不知道该怎么做。

这是我的财产声明。(我尝试使用原子版本,但这没有帮助)

属性的自定义设置器/获取器:

我能做些什么?

0 投票
2 回答
76 浏览

ios - 如何绘制具有许多微小修改的图像?

我在视图上绘制了许多音频表,发现 drawRect 跟不上音频变化的速度。实际上,一次只有很小一部分图像发生变化,所以我真的只想绘制增量变化。

我创建了一个CGLayer,当数据发生变化时,我使用、CGContextBeginPath和来在 CGLayer 中绘制。CGContextMoveToPointCGContextAddLineToPointCGContextStrokePath

drawRectCGContextDrawLayerAtPoint用来显示图层的视图中。

当数据发生变化时,我通过在CGLayer. 我曾以为它就像 Photoshop 一样,新数据只是在旧数据上绘制,但我现在相信我曾经绘制的所有线条仍然存在于图层中。那是对的吗?

如果是这样,有没有办法从 a 中删除行CGLayer

0 投票
2 回答
773 浏览

ios - 如何提高CGLayer的绘图质量

我使用 CoreGraphics 在自定义 SGCircleView 中绘制圆圈。因为我希望在触摸时用径向渐变填充圆,所以我的方法是用原始圆(SGCircleLayer)绘制一层,然后用渐变添加另一层。问题是圆圈看起来“有颗粒感”。

这是 SGCircleLayer 中的代码:

出于测试目的,我在自定义 SGCircleTestView 的 drawRect 中添加了另一个半径和线宽完全相同的圆,它看起来真的很平滑。

这是我在 SGCircleTestView 中的 drawRect 代码(平滑圆):

我在绘制 SGCircleLayer 的代码时做错了什么?

预习

0 投票
0 回答
488 浏览

ios - CGContextDrawLayerInRect 随着时间的推移变得越来越慢

我正在尝试制作一个可以用手指在当前页面上绘制线条的应用程序。我已经完成了绘图视图,它工作得很好,但是在bufferlayer多次绘制到当前上下文后存在严重的延迟(慢)问题. 我已经搜索过这个问题,它似乎CGLayer每次CGContextDrawLayerInRect(boardcontext,[self bounds],bufflayer)被调用时都会重绘自己。还有我的代码,看看是否有人可以帮助我提高绘图速度,谢谢。

而且我还尝试创建一个作为缓冲区,而不是在外部CGbitmapcontext调用,但这似乎比使用更糟糕。UIGraphicsGetCurrentContext()drawRect()UIGraphicsGetCurrentContext()

0 投票
1 回答
739 浏览

ios - iOS 将 CGImage 加载到 CGLayer 并在顶部绘制

我需要将图像加载到 CGLayer 并在其上绘制一些路径。

下面的代码不太有效:它不允许我在图像上绘制路径(路径中有间隙)。请看下图。黑色方块是图像,红色虚线是在其上绘制的路径。您可以看到,如果我只是在图像旁边绘制到视图中,路径会正确显示

在此处输入图像描述

0 投票
2 回答
1381 浏览

ios - 使用 Cglayer 绘图进行撤消和重做

我正在使用绘图应用程序,我正在使用 CGlayers 进行绘图。在触摸结束时,我从图层中取出图像并将其存储在一个数组中,我用它来撤消操作。

我的触摸结束功能

我的绘图视图根据用户需求动态扩展,因此假设用户可以绘制一条 drawView 大小为 200*200 的线,然后将其扩展为 200*300 并再画一条线,然后将其扩展为 200*300 并再画一条线.

这是应用程序的图像

所以现在我在 UndoArray 中有 3 个不同大小的图像。

每当我增加/减少画布大小时。我写了这段代码

关于drawingView的增减,我正在写这个函数

为了撤消,我写了这段代码

在我的drawRect函数中,我写了这段代码

我有几个疑问

  1. 这是正确的做法吗?还是他们有更好的方法。

  2. 这里发生的情况是,我来自撤消数组的图像不尊重矩形,而是在新层上的任何随机位置绘制。

所以我想知道我们如何正确地绘制它们,以便在特定位置的 CGlayers 上正确地绘制图像。