当我使用initWithTitle创建一个UIBarButtonItem时,它不响应标题内的触摸,只有标题之外才能响应

时间:2014-01-08 08:02:02

标签: ios objective-c uibarbuttonitem

这是代码

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Interpretations" style:UIBarButtonItemStyleBordered target:self action:@selector(showInterpretations:)];

self.navigationItem.rightBarButtonItem = button;

在我的程序中,当我创建一个按钮并设置它的标题时,默认值titleLabel.userInteractionEnabledYES,这会导致同样的问题,所以我必须将UserInteractionEnabled设置为{ {1}}以便按钮可以正确响应。

但是在导航栏中,NO的类不是UIBarButtonItem,我尝试使用UIView创建UIBarButtonItem并且效果很好,我认为在使用时initWithImage 1}}必须有一个initWithTitle为YES的titleLabel。我仍然想知道它是如何发生的以及如何解决它,谢谢。

1 个答案:

答案 0 :(得分:0)

我使用它并且它有效:D..hope它帮助了你:)

UIButton* backToRecent = [UIButton buttonWithType:UIButtonTypeCustom];
[backToRecent setImage:[UIImage imageNamed:@"navB_V.png"]forState:UIControlStateNormal];
[backToRecent setTitle:@"button title" forState:UIControlStateNormal];

[backToRecent addTarget:self action:@selector(deselect) forControlEvents:UIControlEventTouchUpInside];
[backToRecent setFrame:CGRectMake(0, 0, 45, 30)];
[backToRecent setImageEdgeInsets:UIEdgeInsetsMake(0, -30, 0, -30)];
UIBarButtonItem* navItem = [[UIBarButtonItem alloc]initWithCustomView:backToRecent];

[self.navigationItem setLeftBarButtonItem:navItem];