4

我有一个UIBarButtonItem只是一个图像,我想将此图像用作具有空字符串标题的条形项的背景图像。

但是宽度不正确,为了获得正确的尺寸,我制作了一个带有图像集UIBarButtonItem的自定义视图。UIButton

我遇到的问题是,在横向模式下,此自定义视图不会调整大小以正确适应较小的导航栏。

我尝试通过允许灵活的高度使按钮自动调整大小,但它保留了肖像的顶部和底部边距,现在我的按钮被压扁了。

我最初想使用标题为空的条形项目的原因是使用外观协议设置条形度量默认和横向的背景图像以绕过此问题。

如何使用自定义视图使我的UIBarButtonItem支持纵向和横向尺寸?

我有一个专用的风景图像,所以它只是更小,而不是我想要使用的扭曲。

肖像:

在此处输入图像描述

景观:

在此处输入图像描述

具有自动调整大小的横向,请注意纵向的边距会导致条形按钮被过度挤压。

在此处输入图像描述

4

3 回答 3

2

最好的答案是提供两张图片,一张用于纵向模式,另一张用于横向模式,您的代码将类似于

UIBarButtonItem *barBtnLeft= [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yourImg.png"] landscapeImagePhone:[UIImage imageNamed:@"yourImg_Landscape.png"]style:UIBarButtonItemStyleBordered target:self action:@selector(yourSelector:)];

我知道这篇文章很旧,但它很幸运得到了正确的答案,我希望像我这样的新人能得到这个解决方案的帮助。

我应该在这里提一下,横向图像应该小 0.75f 比例。

于 2014-02-20T12:33:58.423 回答
0

您使用的图像是否可调整大小?你是用它创建的- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets吗?

于 2012-12-07T13:58:21.487 回答
0

如果您只是希望它保持其纵横比,并且您使用的自定义视图是 UIImageView(我假设它是),您可以设置图像视图的 contentMode 属性以使其在保持纵横比的同时进行缩放。你可能会想要使用UIViewContentModeScaleAspectFit.

于 2012-12-07T14:23:42.713 回答