UIBarButtonItem支持自定义视图的纵向和横向大小?

时间:2012-12-07 13:47:42

标签: ios uikit

我有UIBarButtonItem这只是一张图片,我想将此图片用作带有空字符串标题的条形图的背景图片。

但宽度不正确,为了获得正确的尺寸,我使用自定义视图制作了UIBarButtonItem,其中UIButton设置了图片。

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

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

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

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

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

人像:

enter image description here

风景:

enter image description here

使用自动调整风景,请注意纵向边距会导致夸大压缩条形按钮。

enter image description here

3 个答案:

答案 0 :(得分:1)

最佳答案是提供两个图像,一个用于纵向模式,另一个用于横向模式,您的代码就像

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

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

我应该在这里提一下,景观图像的尺寸应小于0.75f。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果你只是想让它保持它的宽高比,你使用的自定义视图是UIImageView(我认为是这样),你可以设置图像视图的contentMode属性,使其在保持方面的同时进行缩放比。你可能想要使用UIViewContentModeScaleAspectFit