1

私はこのコードを試しました: custom barbuttonitem:

-(id)initWithImage:(UIImage *)image title:(NSString*)title target:(id)target action:(SEL)action {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
button.titleLabel.font = [UIFont boldSystemFontOfSize:12];
button.titleLabel.shadowOffset = CGSizeMake(0, -1);
button.titleLabel.shadowColor = [UIColor colorWithWhite:0 alpha:0.5];
button.titleLabel.textColor = [UIColor redColor];
[button setTitle:title forState:UIControlStateNormal];
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[view addSubview:button];
self = [[UIBarButtonItem alloc] initWithCustomView:view];
return self;

}

そしてそれを使用しました:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"my_account_icon.png"] title:@"" target:self action:@selector(buttonClick:)];

しかし、ios 6 イベントではアクティベートされず、ios 5 は正常に動作します。助けてください !!!!

4

2 に答える 2

0

UIBarButtonItemcustomViewset に指定しても、アクションは発生しません。

于 2013-06-27T23:40:11.607 に答える
0

次のことを試してください。

-(id)initWithImage:(UIImage *)image title:(NSString*)title target:(id)target action:(SEL)action 
{
    //create whatever custom views you need

    UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];

    UITapGestureRecognizer * gestureRec = [[UITapGestureRecognizer alloc] initWithTarget: target action: action];
    [view addGestureRecognizer: gestureRec];

    //add your custom subviews to the view

    self = [[UIBarButtonItem alloc] initWithCustomView:view];
    return self;
}

UIBarButtonItem がカスタム ビューで初期化されている場合でも、UIBarButtonItem のサブビューにジェスチャ レコグナイザーを追加するとうまくいきました。幸運を!

于 2013-11-15T16:08:55.313 に答える