5

只是想知道,我通过以下方式自定义了 UIBarButtonItems

+ (UIBarButtonItem *)createBarButtonItemWithTitle:(NSString *)t target:(id)tgt action:(SEL)a
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *buttonImage = [[UIImage imageNamed:@"blabla.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];


    CGRect buttonFrame = [button frame];
    buttonFrame.size.width = 35;
    buttonFrame.size.height = buttonImage.size.height;
    [button setFrame:buttonFrame];

    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];

    [button addTarget:tgt action:a forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

    return buttonItem ;
}

但是现在,我对按钮背景图像没有阴影/光泽效果......

有没有办法让它自动完成,或者我必须以编程方式完成?

编辑: 这是一张截图,我用了一个简单的绿色方块让它更明显。 不再有阴影/光泽效果

4

1 回答 1

0

要以这种方式完全自定义栏按钮,您需要提供除“blabla.png”中的扁平绿色图像之外的其他内容。

处理此问题的另一种方法是使用您的图像创建一个带边框的样式按钮。就像是:

UIBarButtonItem* barButton = [UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"blabla.png"] style:UIBarButtonItemStyleBordered target:tgt selector:a];

这种UIBarButtonItemStyleBordered风格赋予它 3D 凸起的按钮式外观。如果需要,您可以对其外观进行着色以匹配您的酒吧。

于 2013-04-10T23:45:19.290 回答