UIView 中的 CG 绘图用作 UIImage?
Posted
技术标签:
【中文标题】UIView 中的 CG 绘图用作 UIImage?【英文标题】:CG drawing in UIView to use as UIImage? 【发布时间】:2012-10-12 17:27:59 【问题描述】:我正在尝试为 UINavigationbar 创建一个自定义后退按钮。
我知道我可以使用backButtonBackgroundImageForState:barMetrics:
来设置图像。
我的问题是我不必使用图像文件。我宁愿在代码中绘制后退按钮。
我的问题是我可以继承一个 UIView,覆盖 drawrec: 以绘制一个后退按钮,然后将该 UIView 用作backButtonBackgroundImageForState:barMetrics
中的图像:
我想它会是这样的:
UIImage * backButtonImage = // somehow get image from my subclassed UIView;
backButtonImage = [backButtonImage stretchableImageWithLeftCapWidth: 15.0 topCapHeight: 30.0];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage: backButtonImage forState: UIControlStateNormal barMetrics: UIBarMetricsDefault];
这甚至是解决这个问题的最佳方式吗?还是我应该把它吸起来并在 Photoshop 中创建一个图像?
【问题讨论】:
【参考方案1】:您可以使用UIGraphicsBeginImageContextWithOptions
创建位图图像上下文,而无需创建UIView
的子类并覆盖drawRect:
。
UIGraphicsBeginImageContextWithOptions(CGSizeMake(80, 30), NO, 0);
// drawing code here
// Use UIKit functions and objects
// or use CoreGraphics functions on UIGraphicsGetCurrentContext()
UIImage *image = UIGraphicsGetImageFromCurrentContext();
UIGraphicsEndImageContext();
【讨论】:
以上是关于UIView 中的 CG 绘图用作 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章
CGImageRef cg = [[UIImage imageNamed: Path] CGImage];需要 CGImageRelease(cg)'?