Ios MenuItemButtom操作没有';行不通
我想添加一个自定义图像作为左菜单项。这就是我使用customView的原因,否则我会得到蓝色的图像 我就是这样做到的:Ios MenuItemButtom操作没有';行不通,ios,objective-c,uinavigationitem,Ios,Objective C,Uinavigationitem,我想添加一个自定义图像作为左菜单项。这就是我使用customView的原因,否则我会得到蓝色的图像 我就是这样做到的: UIImageView *menuItemImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MenuButton"]]; UIBarButtonItem *leftMenuItemButton = [[UIBarButtonItem alloc] initWithCustomView:men
UIImageView *menuItemImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MenuButton"]];
UIBarButtonItem *leftMenuItemButton = [[UIBarButtonItem alloc] initWithCustomView:menuItemImageView];
[leftMenuItemButton setAction:@selector(menuClicked:)];
[leftMenuItemButton setTarget:self];
self.navigationItem.leftBarButtonItem = leftMenuItemButton;
一切正常,除了我点击按钮什么也没发生。它永远不会出现在这样的情况下:
- (void)menuClicked:(id)menuClicked {
NSLog(@"%s menuClicked", __PRETTY_FUNCTION__);
}
有人能帮我吗?这里的问题似乎是使用
ImageView
,UIBarButtonim目标和操作仅在自定义视图为UIButton时有效
试试这样的
UIButton* someBtn = [UIButton buttonWithType: UIButtonTypeInfoLight];
UIBarButtonItem *leftMenuItemButton = [[UIBarButtonItem alloc] initWithCustomView:someBtn];
[leftMenuItemButton setAction:@selector(menuClicked:)];
[leftMenuItemButton setTarget:self];
self.navigationItem.leftBarButtonItem = leftMenuItemButton;
希望这对您有所帮助首先,您需要创建一个自定义UIButton和UIBarButtonim
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(menuClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateHighlighted];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
将按钮添加到导航栏
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:barButton, nil]];
感谢n00bprogrammer:
UIBarButtonItem * menuItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"MenuButton"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(menuClicked:)] ;
self.navigationItem.leftBarButtonItem = menuItem;
两个答案都指向正确的方向 我就是这样让它工作的:
UIButton *showCalendar = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
showCalendar.frame = CGRectMake( 0, 0, 40, 30 );
[showCalendar setImage:[UIImage imageNamed:@"calendar"] forState:UIControlStateNormal];
[showCalendar addTarget:self action:@selector(toggleCalendar) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:showCalendar];
以下是代码,在imageview中添加轻触手势:
UIImageView *menuItemImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MenuButton"]];
UIBarButtonItem *leftMenuItemButton = [[UIBarButtonItem alloc] initWithCustomView:menuItemImageView];
UITapGestureRecognizer *tapGesture =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(menuClicked:)];
[menuItemImageView addGestureRecognizer:tapGesture];
使用
ui按钮
代替ui图像视图
,并将目标添加到按钮。然后使用按钮作为自定义视图。在按钮上设置图像。或者使用initWithImage:style:target:action:
。我建议使用第二个选项。当我使用第二个选项时,我的图像是蓝色的,而不是原始颜色。使用initWithImage:[[UIImage ImageName:@“MenuButton”]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
Thank的作用就像一个符咒:)这不显示任何内容:sChange ImageName两个按钮状态的值。像这样,我无法设置图像。