UIBarButtonItem - 无效的点按发光大小

时间:2012-07-24 07:59:15

标签: iphone ios uitoolbar tap

我在按下UIToolbar控件中的UIBarButtonItem时出现一个奇怪的问题。当我将ImageInsets属性设置为4,0,0,0时,每次点击它时,光晕都会变小。这是一个例子:

Tap glow problem

如果我没有设置imageInsets,则不会出现此问题。 UIToolbar中的所有按钮都会出现此问题。我没有自来水处理程序。使更大的插入(例如8,0,0,0)更快地产生相同的结果。

我很感激有关如何解决问题的任何建议。

编辑:将代码更改为Objective-C,因为问题在没有MonoTouch的情况下重现。

这是默认的单一视图项目。我使用storyboard设计器将一个工具栏和一个UIBarButtonItem添加到其中。为按钮创建了一个插座。

#import "ViewController.h"

@implementation ViewController
@synthesize testBtn;

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIEdgeInsets insets = UIEdgeInsetsMake(8, 0, 0, 0);
    [testBtn setImageInsets:insets];
}

- (void)viewDidUnload
{
    [self setTestBtn:nil];
    [super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end

2 个答案:

答案 0 :(得分:0)

如果没有代码,很难看出问题是什么。你介意发布代码的相关部分吗?我认为这与你反复增加顶部插图4有关...我会在看到相关代码后编辑我的答案。

编辑:所以我不熟悉Monotouch ......从你粘贴的代码中我假设构造函数确实被调用了一次。我在想Monotouch框架中可能存在一个错误,即每次点击按钮时,图像集都会移动指定的数量(下降4)。我会按以下顺序检查:

  1. 绑定到按钮的委托方法未指向构造函数。
  2. 将插图更改为(8,0,0,0),在5个点击中,您会看到与上面相同的图像(10x)。如果是这样,它可能是monotouch框架的问题,也可能是你如何连接你的委托方法。
  3. 抱歉,但我不熟悉monotouch,所以我无法提供更多帮助。除非您被锁定使用Monotouch,否则我强烈建议您学习本机Objective-C并进行本地编程以避免诸如此类的小陷阱和麻烦。 Objective-C和iOS SDK非常优雅。

答案 1 :(得分:0)

最后,我要求设计师调整图像大小,从而摆脱imageSize属性的使用。