0

我正在尝试为 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 中创建一个图像?

4

1 回答 1

0

您可以使用创建位图图像上下文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();
于 2012-10-12T18:39:12.860 回答