1

这就是我设置按钮导航栏的方式

 UIButton *addEditButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [addEditButton setImage:[UIImage imageNamed:@"edit.png"] forState:UIControlStateNormal];
    [addEditButton setFrame:CGRectMake(0, 0, 62, 31)]; used frame same as image

    [addEditButton addTarget:self action:@selector(EditTable) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *addEdit = [[UIBarButtonItem alloc] initWithCustomView:addEditButton];
    self.navigationItem.leftBarButtonItem =addEdit;

一切正常,但是当我触摸它的一侧时按钮被按下。如何解决这个问题有什么办法,所以只有当我触摸它时它才会被按下

就是这个图在此处输入图像描述

4

3 回答 3

1

我相信您遇到了这个问题,因为您设置的图像小于按钮的实际大小。请缩小按钮尺寸或提供更大的图像。

我希望这可以帮助你。

于 2013-04-20T14:03:05.763 回答
1

苹果已经设置了这个东西,以便用户可以顺利导航。建议不要进行将按钮放在导航栏按钮附近的设计。有一些方法可以做到,但改变这种事情并不好。就像回复消息和删除消息一样,两个按钮都靠近彼此

于 2013-04-23T13:37:35.200 回答
0

似乎它只是这样工作,但我还是想出了一个解决方案。

一个是您可以隐藏导航栏并确实使用工具栏。

其他是您可以在此之后添加另一个按钮并将其启用属性设置为 FALSE。

我不知道这是否合适,但似乎至少可以满足您的要求。

这是代码:

UIButton *addEditButton = [UIButton buttonWithType:UIButtonTypeCustom];
[addEditButton setFrame:CGRectMake(0, 0, 62, 31)];

[addEditButton setImage:[UIImage imageNamed:@"edit.png"] forState:UIControlStateNormal];

[addEditButton addTarget:self action:@selector(EditTable) forControlEvents:UIControlEventTouchUpInside];

UIButton *addEditButton1 = [UIButton buttonWithType:UIButtonTypeCustom];
[addEditButton1 setFrame:CGRectMake(63, 0, 30, 31)]; 

UIBarButtonItem *addEdit = [[UIBarButtonItem alloc] initWithCustomView:addEditButton];
UIBarButtonItem *addEdit1 = [[UIBarButtonItem alloc] initWithCustomView:addEditButton1];
addEdit1.enabled = FALSE;


NSMutableArray *buttonArray=[[NSMutableArray alloc]initWithCapacity:2];
[buttonArray addObject:addEdit];
[buttonArray addObject:addEdit1];

self.navigationItem.leftBarButtonItems =buttonArray;
于 2013-04-22T05:55:07.580 回答