2

我有一个导航控制器,已将其添加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

4

2 回答 2

1

默认大小为 left button 和 right button 。所以我们不能用左右按钮做任何事情。因为它的左右键区域。如果你想在这种情况下自定义按钮,它只会显示你给定的框架,但它会在左按钮的整个区域中工作。

于 2013-08-08T12:25:54.133 回答
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]; 
于 2013-08-08T12:43:24.237 回答