问题标签 [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.
objective-c - CGContextRef/Objective C 到 CGContext/Swift 的混淆
我有一个用objective C编写的基类,由于许多原因,当子类需要在drawRect中绘制时,它用于获取CGContext。
我现在是一个用 Swift 编写的子类,它需要做一些绘图,所以在 super.. 中要求 CGContext
问题出在线路上
这不是编译错误:
我很困惑为什么会这样。CGContext 在 Swift 中被别名为 CGContextRef,所以我认为这会起作用。
有人可以解释/帮助吗?
swift - 你需要在 Swift 中发布 CGContextRef 吗?
我已经使用 CGBitmapContextCreate 创建了一个上下文。我需要使用 CGContextRelease 释放它吗?我知道在 Objective-C 中答案是肯定的,但是在 Swift 中呢?
谢谢!
ios - 图形上下文有问题
我正在开发多个终端屏幕应用程序,因为我有一个UIView
用于终端视图的自定义子类。每次我需要一个新的终端屏幕时,我都会准备一个新的视图。
这个视图类使用CGContextRef
. 我面临的问题是上下文仅绘制创建的最后一个视图的文本,例如,如果我有 3 个终端并在第一个/第二个上绘制,它仍然在第三个上绘制。
到目前为止我的代码:
最后我自己解决了
[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];
之后setNeedsDisplay
。
ios - iOS CGContextRef 在 UIImage 上绘制描边颜色和边框文本
我正在尝试在 UIImage 上实现带有颜色和边框的绘制描边文本,但我无法获得解决方案。
我已经将此THLabel用于文本的笔画和边框,它工作正常,但只有当我将该代码复制到绘图图像中时,它才对我有用。
请参阅相同的屏幕截图。有什么建议么?
在 UIImage 方法上绘制文本:
用于文本方法的笔触颜色和边框的 THLabel 代码:
ios - 如何缩放图形,使用 CGContextRef 创建
我正在使用CGContextRef绘制折线图。我可以放大缩小此图以清楚地显示线条。
我正在使用此代码。
注意:- 我不想缩放视图。我想重新绘制线条以清晰显示。
ios - drawRect 中不同颜色的不同行为:
我对以下代码的工作方式感到困惑。预计会产生一个被彩色圆圈包围的黑色圆盘。它适用于某些颜色(如评论中所述),但不适用于其他颜色。谁能解释这种神秘的行为?
ios - 检测到 iOS9 堆缓冲区溢出 - CGContextSetFillColor
我有一个自定义 drawRect: 函数,我在其中绘制到上下文。在两个不同的点上,我一直在点击“检测到堆缓冲区溢出”。这两行代码是:
似乎任何时候 CGContext 方法引用颜色时,都会检测到堆缓冲区溢出。我能够追踪的奇怪之处在于正在使用的 UIColor 对象的类型。每当 UIColor 的类型为“UIDeviceWhiteColorSpace”时,就会发生这种崩溃。只要 UIColor 的类型为“UIDeviceRGBColorSpace”,就不会发生这种崩溃。
产生“UIDeviceWhiteColorSpace”颜色类型的颜色示例有:
现在,我有一个解决方法来从 HEX 值生成“清晰”、“白色”和“浅灰色”颜色,我的 HEX 方法只生成“UIDeviceRGBColorSpace”类型的 UIColor。
这段代码在 iOS7 和 iOS8 上运行良好一段时间了。
最终我的问题是:其他人是否正在经历这种情况?还有其他已知的解决方法吗?我们可以期待这会持续到 iOS 9 GM 中吗?
swift - CGContext 和 CGContextRef 在 Swift 中一样吗?这是如何运作的?
ObjectiveC
我正在将一些自定义子类移植UIView
到Swift
今天早上。为了使其更加“面向对象”,我遵循了CGContext
使用方法进行扩展的示例。例如
因为我将客观的 C 风格消息(例如-(void) drawOutline: (CGContextRef) cr {...}
)转换为 Swift 风格的消息而没有给予太多关注(例如func drawOutline(cr:CGContextRef) {...}
),所以我一开始并没有意识到我在传递CGContextRef
参数,而是扩展了CGContext
(不是 Ref)。但它奏效了!
更奇怪的是,当我将那些CGContextRef
' 更改为 just CGContext
's 时。它仍然有效。不仅编译,而且正确运行和绘制。为了好玩,我改成了extension CGContextRef
. 然而它仍然继续工作。就好像 Swift 足够聪明,可以将它们归结为同一件事。是吗?还是这里发生了一些更微妙/更酷的事情?
ios - 如何正确更新使用 CGContextScaleCTM 和 CGContextTranslateCTM 放大和翻译的 uiview
我有一个 uiview B,它是另一个 uiview A 的放大部分(“touchPoint”周围的区域被放大)。当“touchPoint”发生变化时,我希望 B 更新其显示。我在 B 中有以下函数,它确实更新了(当我调用 B.setNeedsDisplay() 时),但它使旧内容以某种方式可见,就像褪色的背景图像一样。你们知道为什么旧的内容仍然出现,为什么会出现这种褪色的效果吗?是因为我放大的区域有透明背景吗?如何解决?
我本来想发布一张图片,但我还没有足够的 stackOverflow 点... :-)
感谢您的任何指点!