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

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

【问题讨论】:

    标签: ios core-graphics cgcontext cgcontextref


    【解决方案1】:

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

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

    setNeedsDisplay:
    setNeedsDisplayInRect:
    

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

    【讨论】: