0

我使用itiWithCustomView方法,其中customViewUIButtoncontentHorizontalAlignmentUIControlContentHorizontalAlignmentRight创建UIBarButtonItemrightBarButtonItem
barbuttonitem工作正常。
但推动pop viewcontroller操作后,barbuttonitem点击面积大幅减少(我认为不超过3-4个像素)。
请帮我这个问题的UIBarButtonItem用的UIButton为CustomView奇怪的问题

UIImage *filterImage = [UIImage imageNamed:@"filter"]; UIButton *filterButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
filterButton.frame = CGRectMake(0, 0, 44, 44); 
filterButton.showsTouchWhenHighlighted = YES; [filterButton setImage:[UIImage imageNamed:@"filter"] forState:UIControlStateNormal]; 
[filterButton addTarget:self action:@selector(filterTapped:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *filterItem = [[UIBarButtonItem alloc]initWithCustomView:filterButton]; 
self.navigationItem.rightBarButtonItem = filterItem; 
+0

请添加至少一个剪断代码。 –

+0

这里完全没有太多的信息。 –

+0

如果我在viewDidLoad问题中添加按钮,如果我在viewWillAppear中添加代码,那么没问题。这种模糊行为的任何理由? –

回答

0

我想你分配对准移动栏按钮点点右侧。相反,你可以尝试下面的代码片段。它可能会解决你的问题。

self.navigationItem.rightBarButtonItem = nil; 
self.navigationItem.rightBarButtonItems = [self setRightBarButtonWithTarget:self action:@selector(topRightButtonClick) image:@"imagename"]; 

,创造共同的方法创建右栏按钮

- (NSArray *)setRightBarButtonWithTarget:(id)target action:(SEL)action image:(NSString *)imgName 
{ 
    UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    rightBtn.backgroundColor = [UIColor clearColor]; 
    [rightBtn setImage:[UIImage imageNamed:imgName] forState:UIControlStateNormal]; 
    [rightBtn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 
    rightBtn.frame = CGRectMake(0, 0, 26, 26); 

    UIBarButtonItem *negativeSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
    negativeSpace.width = -5; 
    UIBarButtonItem *homeButton = [[UIBarButtonItem alloc] initWithCustomView:rightBtn]; 

    NSArray *arrBarItems = [NSArray arrayWithObjects:negativeSpace, homeButton, nil]; 
    return arrBarItems; 
} 
+0

感谢这个奇妙的建议,但看到我的问题中的评论。你的解决方案不起作用 –