4

在我的应用程序中,我在 uinavigation 项目上应用了图像。它在 iOS 5 中运行良好,但在 iOS 6 上得到扩展。我在导航栏中没有左右栏按钮项。我搜索了太多但找不到答案。

这是我的代码:

UIImageView *navigationImage=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 98, 34)];
navigationImage.image=[UIImage imageNamed:@"topNav-logo.png"];
self.navigationItem.titleView=navigationImage;

图像显示如下:

截屏

它应该像下图一样显示,但在 iOS 6 中显示为展开式,在 iOS 5 中运行良好。

结果是:

结果截图

4

2 回答 2

5

我从 iOS 6 开始遇到同样的问题,并找到了最疯狂的解决方法:

再创建一个相同尺寸的 UIImageView。然后将 navigationImage 作为子视图添加到其中。在我的情况下,这将阻止自动调整大小。

UIImageView *workaroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 98, 34)];
[workaroundImageView addSubview:navigationImage];
self.navigationItem.titleView=workaroundImageView;

如果有人找到适当的解决方案或解释,请发布。

于 2013-01-23T12:57:26.770 回答
0

我的项目中有以下代码,在 iOS 5 和 iOS 6 下运行良好。你可以试试这个:

self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"topNav-logo.png"]];

此外,请确保同时具有@2x 和常规尺寸的图像。

于 2012-12-21T12:03:05.353 回答