UIButton响应帧外的事件

时间:2013-08-08 12:16:56

标签: ios objective-c uinavigationcontroller uibutton uinavigationbar

我有一个导航控制器,我在导航栏中添加了UIButton,但它有问题。即使我点击按钮外的方式,它仍然会调用它的动作。

这是我创建和添加按钮的方式:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[backBtn setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(backPressed:) forControlEvents:UIControlEventTouchUpInside];   
[backBtn setFrame:CGRectMake(0, 0, 70, 30)];
    //[backBtn setFrame:CGRectMake(20, 7, 70, 30)];

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:backBtn] autorelease];

这是按钮的点击范围:

http://www.flickr.com/photos/98950925@N07/9465901718

2 个答案:

答案 0 :(得分:1)

默认情况下,左键和右键的大小。因此我们无法使用左右按钮。因为它的左右按钮区域。如果您想要自定义按钮,那么它只显示您给定的帧,但它将在左键的整个区域中工作。

答案 1 :(得分:0)

试试这个。

UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btn_back.png"] style:UIBarButtonItemStylePlain target:self action:@selector(Back:)];
[self.navigationController setHidesBackButton:YES];
[self.navigationItem setLeftBarButtonItem: customItem];