我用这段代码在导航栏中创建了按钮:
UIBarButtonItem *myButtonEn = [[UIBarButtonItem alloc] initWithTitle:@"EN" style:UIBarButtonItemStyleDone target:self action:@selector(buttonEN:)];
我对这个按钮的操作:
- (void) buttonEN:(id)sender {
NSLog(@"English language");
}
这工作正常,但我必须更改背景和按钮的样式(下面的代码)。
UIImage *imageEN = [UIImage imageNamed:@"cys_lang_en.png"];
UIButton *buttonImgEN = [UIButton buttonWithType:UIButtonTypeCustom];
buttonImgEN.bounds = CGRectMake( 0, 0, imageEN.size.width, imageEN.size.height );
[buttonImgEN setImage:imageEN forState:UIControlStateNormal];
UIBarButtonItem *myButtonEn = [[UIBarButtonItem alloc] initWithCustomView:buttonImgEN];
这正是我所需要的,但我需要采取行动
[myButtonEn setTarget:self];
[myButtonEn setAction:@selector(buttonEN:)];
此代码编译没有错误,但按钮没有响应。
谁知道哪里出了问题?
最佳答案
试试这个..
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0.0f, 0.0f, 25.0f, 40.0f)];
[btn addTarget:self action:@selector(buttonEN:) forControlEvents:UIControlEventTouchUpInside];
[btn setImage:[UIImage imageNamed:@"cys_lang_en.png"] forState:UIControlStateNormal];
UIBarButtonItem *eng_btn = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.rightBarButtonItem = eng_btn;
}
-(void)buttonEN:(id)sender
{
NSLog(@"English language");
}
关于ios - UIBarButtonItem 背景图片和设置 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18845272/