- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如苹果文档所说,UIGraphicsGetCurrentContext只能在drawRect方法中使用。如果你想在其他地方使用它,你必须先推送一个上下文。
现在我想使用 UIGraphicsGetCurrentContext 在我自己的名为 render 的方法中获取上下文。如何获取要推送的上下文?
我可以在 drawRect 中获取上下文并将其保存在非局部变量中吗?并以另一种方法推送它,然后使用 UIGraphicsGetCurrentContext 来使用它。如果是这样,为什么我需要插入它并再次获得它?我可以直接使用非局部变量。
最佳答案
您可以调用需要在定时器上重绘的 View 的 setNeedsDisplay
,并让它的 drawRect
调用您的 render
(而不是调用您的直接在定时器上渲染
)。这样您就可以避免对 CG 上下文进行异常操作,并在矩形滚出屏幕时阻止渲染。
编辑:当您希望特定上下文成为 UI Kit 操作的上下文时,您可以使用 UIGraphicsPushContext 和 UIGraphicsPopContext。我最初对他们所做的事情的理解是不正确的(我自己对 iOS 开发还比较陌生)。例如,有些操作(例如,一些设置颜色或其他绘图参数的操作)隐式操作当前上下文。如果您为在位图上绘制等设置上下文,然后您想要使用修改当前上下文状态的操作(即修改上下文参数的操作,但不将特定上下文引用作为一个参数),你推送位图上下文使其成为当前位图上下文,执行隐式引用它的操作,然后立即弹出上下文。
特别感谢 rob mayoff 向我解释了这一点。
关于iphone - 如何获取 UIGraphicsPushContext 参数的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464573/
正如苹果文档所说,UIGraphicsGetCurrentContext只能在drawRect方法中使用。如果你想在其他地方使用它,你必须先推送一个上下文。 现在我想使用 UIGraphicsGetC
我在 MBProgressHUD ( https://github.com/jdg/MBProgressHUD ) 中注意到下面的代码 - (void)drawRect:(CGRect)rect {
drawRect方法有两种: - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContex
理解 UIGraphicsPushContext(context) 和 UIGraphicsPopContext() 非常令人沮丧 我的理解是,我可以设置上下文的属性,例如笔触颜色,然后将上下文压入堆
我是一名优秀的程序员,十分优秀!