我可以获取上下文吗(CGContextRef
) 来自存在UIImageView
?
详细信息:我有一个指向 xib 文件的控制器链接。在IB中我添加了一个UIImageView
并参考它:
IBOutlet UIImageView *imageView;
Now, in viewDidLoad
如何获得UIImageView
语境 (CGContextRef
)?
在此之前,如果我使用:
CGContextRef context = UIGraphicsGetCurrentContext();
output:
<Error>: CGContextTranslateCTM: invalid context
suggest?
如果您想使用自己的绘图方法,您应该将它们应用到 UIView 的 drawRect: 方法中。您需要子类化 UIView 来创建您自己的绘图逻辑:在 XCode 中,使用 File->New File 并选择 UIView 作为模板,这将为您提供基本框架。在 Interface-Builder 中,您可以首先添加一个新视图,然后使用 Inspector 窗口中 Identity 选项卡下的类对其进行设置。
然后该方法应该以类似这样的方式开始,以便为您提供对上下文的引用:
- (void)drawRect:(CGRect)fr {
CGContextRef context = UIGraphicsGetCurrentContext();
... DRAWING CODE ...
}
当视图首次显示时,会自动调用此方法。如果您的逻辑取决于某些变量,您应该调用setNeedsDisplay
在 UIView 上让视图重新运行绘图逻辑。
但是,这不适用于UIImageView
(LINK http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImageView_Class/UIImageView_Class.pdf):
子类化注释
特别注意事项
UIImageView 类经过优化,可将其图像绘制到显示器上。 UIImageView不会调用drawRect:子类。如果您的子类需要自定义绘图代码,建议您使用 UIView 作为基类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)