iOS - UIGraphicsGetCurrentContext 可以在 drawRect 之外使用吗?

Posted

技术标签:

【中文标题】iOS - UIGraphicsGetCurrentContext 可以在 drawRect 之外使用吗?【英文标题】:iOS - Can UIGraphicsGetCurrentContext be used outside drawRect? 【发布时间】:2014-06-10 02:53:44 【问题描述】:

我想根据不同的用户动作动态改变当前的CGContextRef?这是可能的还是只能在视图实例的drawRect: 内进行修改?当我在drawRect: 之外拨打UIGraphicsGetCurrentContext() 时会发生什么,这样做有什么限制吗,是否推荐?我需要考虑任何可能的影响?

【问题讨论】:

【参考方案1】:

根据文档,图形上下文仅在调用此函数之前设置。这意味着如果这个函数没有被调用,它将不会被设置,并且如果你不让系统再次调用它(因为这个原因你永远不要这样做)它也不会在那里。

使用这些函数之一强制视图返回 drawRect:

setNeedsDisplay:
setNeedsDisplayInRect:

但这并不意味着你只能在 drawRect 内做事。这个上下文在那个时候是全局可用的,你可以调用干净的单独函数甚至类来绘制东西。传递对这些函数的引用是一种干净的方法。

【讨论】:

以上是关于iOS - UIGraphicsGetCurrentContext 可以在 drawRect 之外使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

IO复用阻塞IO非阻塞IO同步IO异步IO

四种IO模型‘阻塞IO/非阻塞IO/信号驱动IO/异步IO‘

5种IO模型阻塞IO和非阻塞IO同步IO和异步IO

网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

同步IO异步IO阻塞IO非阻塞IO之间的联系与区别

同步IO异步IO阻塞IO非阻塞IO之间的联系与区别