我正在尝试为我的 UIBarButtonItem 设置自定义按下图像,但似乎没有任何效果。根据我的理解,下面的代码应该可以工作,但是尽管将图像设置为突出显示状态,但按钮在按下时看起来完全一样。
有什么想法吗?
UIImage *barButtonBackground = [[UIImage imageNamed:ANBarButtonItemBackgroundImageName] resizableImageWithCapInsets:UIEdgeInsetsMake(5.0f,5.0f, 5.0f, 5.0f)];
UIImage *barButtonPressedBackground = [[UIImage imageNamed:ANBarButtonPressedImageName] resizableImageWithCapInsets:UIEdgeInsetsMake(5.0f,5.0f, 5.0f, 5.0f)];
[self.navigationItem.leftBarButtonItem setBackgroundImage:barButtonBackground forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self.navigationItem.rightBarButtonItem setBackgroundImage:barButtonBackground forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self.navigationItem.leftBarButtonItem setBackgroundImage:barButtonPressedBackground forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[self.navigationItem.rightBarButtonItem setBackgroundImage:barButtonPressedBackground forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
最佳答案
我认为您应该为匹配您的配色方案的不同控件状态创建一个带有背景图像的自定义UIButton
,然后使用这个UIButton
作为自定义 UIBarButtonItem
的 View 。
UIButton *customButton = [UIButton buttonWithType:...];
[customButton setBackgroundImage:barButtonBackground forState:UIControlStateNormal];
[customButton setBackgroundImage:barButtonPressedBackground forState:UIControlStateSelected];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView: customButton];
如果你想要一些其他引用,那么你可以通过这个漂亮的链接:Using Appearance Proxy to Style Apps
关于ios - 自定义 "Pressed"UIBarButtonItem 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250419/