如何以编程方式删除UIBarButtonItem发光?

时间:2012-11-29 09:48:02

标签: objective-c ios uibarbuttonitem

不幸的是,UIBarButtonItem没有showsTouchWhenHighlighted,我无法从工具栏编辑我的按钮......

1 个答案:

答案 0 :(得分:1)

可以在UIButton类中访问负责此属性的属性:

myButton.showsTouchWhenHighlighted = NO;

您可以通过将UIButton分配给小节按钮项的customView属性并配置按钮,在UIBarButtonItem中以编程方式访问它。您也可以在Interface Builder中执行此操作:将UIButton拖到UIToolbar上,它会自动将其嵌入到UIBarButtonItem中 - 然后在按钮的设置下查找“显示触摸突出显示”复选框。

顺便说一下,我不知道你是如何自定义你的按钮所以随意忽略这一点,但如果你的按钮看起来像一个标准的工具栏项,那么用户会期望发光效果。

来自here

的回答

修改

然后试试这个:

UIImage* buttonImage = [UIImage imageNamed: @"header.navigation.back.png"];     
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setImage:buttonImage forState:UIControlStateNormal];
aButton.frame =  CGRectMake(0.0, 0.0, buttonImage.size.width/2, 32);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:aButton];
[aButton addTarget:self action:@selector(backToPriorView) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = backButton;
[backButton release];