【问题标题】:CG drawing in UIView to use as UIImage?UIView 中的 CG 绘图用作 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 中创建一个图像?

【问题讨论】:

    标签: objective-c core-graphics uinavigationbar uibarbuttonitem uiappearance


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      相关资源
      最近更新 更多