【问题标题】:UIBarButtonItem image (or UIToolbar custom background image?..) is darker (or lighter?..) than originalUIBarButtonItem 图像(或 UIToolbar 自定义背景图像?..)比原始图像更暗(或更亮?..)
【发布时间】:2012-12-31 12:24:34
【问题描述】:

我想在 XCode 中为 UIToolbar 创建自定义按钮(以及 UIToolbar 的自定义背景颜色)。

到目前为止,我是这样完成的:创建 UIButton,然后为其设置图像,然后将其拖到 UIToolbar。之后它变成了 UIBarButtonItem,但它仍然有一个图像,所以对我来说没问题。

问题是,由于某种原因,按钮的图像比原始图像更暗(我可以看到它,因为我的工具栏背景与按钮的背景完全相同),但是当我按下按钮时,我看到它的图像变成原来的样子,然后一秒钟后又变回更暗的那个。

我已经尝试按照这个问题中所说的去做:Image in UIButton is darker tharn original,在 XCode 中设置突出显示的图像,但在此之后它完全停止了“更改为原始图像”。

那么,我该如何解决呢?如果 XCode 有办法做到这一点,我真的不想在代码中引入一些这样的 GUI 东西......任何帮助将不胜感激。

编辑:

这是正在发生的事情的屏幕截图:

这就是工具栏背景+按钮图像组合的样子:

现在我用这样的代码做到了:

@implementation UIBarButtonItem (CustomView)
+ (UIBarButtonItem*) barItemWithImage:(UIImage *)image target:(id)target action:(SEL)action
{    
    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
    [button setImage:image forState:UIControlStateNormal];
    [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem* item = [[self alloc] initWithCustomView:button];
    return item;
}
@end

以及调用代码:

UIBarButtonItem *item =[UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"settings"] target:nil action:nil];
[self.bottomBar setItems:@[item]];

对于工具栏背景,我使用以下代码:

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbar_background"]
                        forToolbarPosition:UIToolbarPositionAny
                                barMetrics:UIBarMetricsDefault];

问题依旧……

编辑 2:

哇,UIToolbar 好像比原来的更轻了...

编辑 3:

嗯。创建了新项目并测试了 XCode 故事板方式(使用 UIButton),工作正常……这对我来说是个谜,完全迷失在这里。这里需要认真澄清一下可能的原因:我当前的项目很大,我无法在此处发布所有代码...

【问题讨论】:

  • “在 Xcode 中”是指“使用 Cocoa Touch API”吗? Xcode 与此完全无关。
  • 好吧,我不写任何代码,只是改变对象的偏好,所以,基本上,我在 XCode 中这样做:)
  • Anything?.. 这真的很奇怪,它在一个新项目中有效,而在我的实际项目中却没有。哪里可能有问题?任何帮助将不胜感激。

标签: objective-c ios xcode cocoa-touch uibarbuttonitem


【解决方案1】:

好吧,既然没人回答,我就说我创建了一个新项目,问题就解决了。

但它又发生了,我完全不知道为什么。我做了一件非常懒惰和糟糕的事情,并在某些图像编辑器中为那个不幸的按钮更改了图像亮度 =D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多