我只是想知道,我用下面的方法定制了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 ;
}但是现在,我在按钮背景图像上没有阴影/光泽效果……
有没有办法让它自动完成,或者我必须通过编程来完成?
编辑:

发布于 2013-04-11 07:45:19
要以这种方式完全自定义条形按钮,您需要提供除"blabla.png“中的平面绿色图像之外的其他内容。
处理这个问题的另一种方法是用你的图像创建一个边框样式的按钮。类似于:
UIBarButtonItem* barButton = [UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"blabla.png"] style:UIBarButtonItemStyleBordered target:tgt selector:a];UIBarButtonItemStyleBordered样式赋予了它3D凸起的按钮-y的外观。如果需要,您可以对其外观进行染色以匹配您的条形图。
https://stackoverflow.com/questions/15415862
复制相似问题