我在尝试使用图像而不是 UIBarButtonItems 的标题时遇到了麻烦。我的理解是,为 UIBarButtonItem 设置图像会自动将图像缩放为 UIBarButtonItem 的正确大小。这是有道理的,因为似乎没有任何方法可以调整图像的大小(您无法设置 imageView,或添加子视图或任何东西)。但是,当我使用两个完全相同尺寸(24x24)的不同图像时,我会得到不同的结果:
myAddButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"plus.png"] style:UIBarButtonSystemItemAdd target:self action:@selector(addButtonTapped)];
self.navigationItem.rightBarButtonItem = myAddButton;
myLeftButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"gear.png"] style:UIBarButtonSystemItemAdd target:self action:@selector(settingsButtonTapped)];
self.navigationItem.leftBarButtonItem = myLeftButton;
导致以下情况:
同样,gear.png 和 plus.png 的大小相同,均为 24x24。我已经在 Photoshop 中确认了这一点。
现在,如果我采用完全相同的代码行,只需将 gear 替换为 plus:
myAddButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"plus.png"] style:UIBarButtonSystemItemAdd target:self action:@selector(addButtonTapped)];
self.navigationItem.rightBarButtonItem = myAddButton;
myLeftButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"plus.png"] style:UIBarButtonSystemItemAdd target:self action:@selector(settingsButtonTapped)];
self.navigationItem.leftBarButtonItem = myLeftButton;
我明白了:
颜色的差异是由于一个被启用而另一个没有。
我只想让它们成为 UIButtons,这样我就可以使用 imageViews 并自己手动设置它,除了我喜欢使用 UIBarButtonItem 给我的背景,我不想在 Photoshop 中重新创建它。
关于这里发生了什么以及如何解决它的任何想法?
提前致谢。
编辑:
事实证明,这个问题是因为我需要清除我的构建并从模拟器中删除应用程序,因为它是从我之前使用的 48x48 图像中提取的。