问题标签 [cgcontextref]

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 回答
791 浏览

iphone - iPhone 中的上下文是什么?

任何人都可以向我解释什么是上下文以及如何使用它?还有Graphics Context(CGContextRef)。Context和Graphics Context有什么关系吗?

0 投票
1 回答
1606 浏览

ios - iOS 应用程序 - 使用 cgcontextref 绘图时出现内存警告

我正在开发一个应用程序,我正在使用 customClass 的 drawRect 方法进行绘制。

我在视图的图形上下文中画线。当我使用 setNeedsDisplay 一次又一次地重绘它们时,我收到内存警告并且我的应用程序立即崩溃。

我检查了我的 drawRect 代码中是否有任何泄漏。我什么也没找到。内存分配也没有显示出任何重大差异。

问题解决了一次,iOS设备重新启动。但我确信崩溃会再次重演。可能是什么问题呢。你们中有人遇到过类似的问题吗?

代码如下:

更新:

崩溃在同一流程中再次重复。这发生在设备重新启动 8 小时后。我整整 8 个小时都没有使用该应用程序。重新启动设备后,应用程序根本不会在该特定流程中崩溃。

0 投票
2 回答
3231 浏览

ios - UIColor 和图形上下文

我有一个自定义 UIView 绘制这样的路径

我的自定义 UIView 也有改变填充颜色的方法

如果我使用任何预定义的颜色调用 changeColor: 方法,例如

一切正常。相反,如果我尝试给它一个自定义颜色,例如

我的自定义 UIView 的颜色在白色、红色和蓝色之间随机闪烁。

为什么会这样?

先感谢您!

0 投票
2 回答
1198 浏览

iphone - iOS:CGContextRef drawRect 不同意输入

背景:当用户触摸某处时,我想绘制块。如果块在那里,我想擦除它。我通过使用NSMutableArray来跟踪块应该去的点来管理块。每次用户触摸时,它都会判断触摸位置是否已经包含一个块,并相应地管理数组。

问题:我收到了一个非常奇怪的反馈。首先,数组中的所有内容都按我的意愿工作。当用户想要擦除一个块时,问题就出现了。虽然正确维护了数组,但绘图似乎忽略了数组中的更改。除了最后一个点,它不会删除任何东西。甚至当用户点击其他地方时,闪烁也会打开和关闭。

这是代码

scale定义为 16. pointArray是视图的成员变量。

测试:您可以将其放入任何 UIView 并将其添加到 viewController 以查看效果。

问题:如何让绘图与数组一致?


更新 + 说明:我知道这种方法的成本,但它只是为我创建一个快速的数字。它不会在实际应用中使用,因此,请不要挂断它的价格。我创建此功能只是为了在我绘制的图形的NSString( ) 中获取值。@"1,3,5,1,2,6,2,5,5,..."当我实际使用它而不重绘时,这将变得更有效率。请坚持提出的问题。谢谢你。

0 投票
1 回答
578 浏览

iphone - 在iphone中绘制画笔时如何从线条中删除点?

在此处输入图像描述我正在使用以下代码在 iphone 中创建画笔。

它正在工作,但是在绘制时,在绘制的直线上一定距离后有一些点。我想删除这些点并想要平滑的直线。我怎样才能做到这一点?

0 投票
2 回答
2225 浏览

ios - 如何将 CGContextRef 保存为 .PNG 文件?

我创建了一个绘图 iOS 应用程序,我想在其中创建一个“保存图像”方法。绘图发生在 touchesMoved: 方法中。

我想将我绘制的内容保存到 .PNG 文件中。

有解决办法吗?

0 投票
2 回答
497 浏览

ios - UIGraphicsBeginImageContext 浪费?

如果你想绘制一个 UIImage,它总是必须进入一个用 UIGraphicsBeginImageContext 创建的新 UIImage,这不是浪费吗?

如果需要频繁绘制,为什么不让我们绘制到预先存在的 UIImage 中呢?

或者有没有办法做到这一点?

0 投票
2 回答
668 浏览

objective-c - 如何将 CGContext 状态存储在 NSMutableArray 中?

我是 CGContext 世界的新手。我需要在 NSMutableArray 中创建一堆 CGContext(s)。

  1. 我有一个使用 UIGraphicsBeginPDFContextToData 创建的有效 PDFContext

  2. 我将此上下文作为参数传递给方法

    -(void) drawTo:(CGContextRef) context{}

  3. 首先,我通过以下方式确定当前上下文:

    CGContextRef curCon = context;

  4. NSLog 值:

    context:<CGContext 0x6b79d60>

  5. 然后我尝试复制当前上下文:

    CGContextRef conCopy = UIGraphicsGetCurrentContext();

  6. 然后我将它添加到我的 NSMutableArray 中:

    [myMutableArray* addObject:(id)conCopy];

  7. 然后我列出了 NSMutableArray 的内容:

    after an object added:<__NSArrayM 0x6b7e850>(<CGContext 0x6b79d60>)

而且我看到添加的值与最初作为参数而不是副本发送到此方法的上下文相同。

我在这里想念什么?或者可能无法将当前上下文的状态存储在 NSMutableArray 中?我知道路径不会被保存,这很好。我需要保存有关可以保存的当前上下文的所有内容。谢谢!

0 投票
1 回答
359 浏览

iphone - iPhone:如何使用 UIGraphicsPushContext

我正在制作一个 iPhone 应用程序,其中用户用手指在 iPhone 屏幕上绘图

在 ViewController1 上,我正在显示从另一个 UIView 类子类化的视图,我将所有触摸移动点存储在数组中

在此视图中,用户使用手指绘制

然后用户在另一个视图 ViewController2 上导航

然后在 ViewController3 上,我想在图像上重绘该视图上的点,但这次我得到错误 invalid context 0 X 0

我想我需要使用 UIGraphicsPushContext

但我不知道如何使用它

谁能建议我解决这个问题的方法是什么

或者有没有其他方法可以解决这个问题

0 投票
2 回答
2475 浏览

iphone - 如何擦除 iPhone 中自定义 UIView 上的手指画

我为手指画应用程序创建了一个自定义 UIView(没有 .xib)。

Paint 与自定义 UIView 一起工作正常,但我的问题是,当我尝试擦除绘制的路径时,我得到:

错误:上下文无效

下面是我的课:

.h 文件

我设置了具有功能但不起作用的擦除按钮。