Iphone UIBarButtonItem-无效的抽头发光大小

Iphone UIBarButtonItem-无效的抽头发光大小,iphone,ios,uitoolbar,tap,Iphone,Ios,Uitoolbar,Tap,我在按下UIToolbar控件中的UIBarButtonItem时出现了一个奇怪的发光问题。当我将ImageInsets属性设置为4,0,0,0时,每次点击它时,光晕都会变小。下面是一个例子: 如果不设置imageInsets,则不会出现问题。UIToolbar中的所有按钮都会出现此问题。我没有踢踏手。制作更大的插图(例如8,0,0,0)会更快地产生相同的结果 我很感激任何关于如何解决这个问题的建议 编辑:将代码更改为Objective-C,因为问题也会在没有MonotTouch的情况下再现

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

如果不设置imageInsets,则不会出现问题。UIToolbar中的所有按钮都会出现此问题。我没有踢踏手。制作更大的插图(例如8,0,0,0)会更快地产生相同的结果

我很感激任何关于如何解决这个问题的建议

编辑:将代码更改为Objective-C,因为问题也会在没有MonotTouch的情况下再现


它是默认的单视图项目。我使用storyboard designer添加了一个工具栏和一个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

如果没有代码,很难看出问题所在。你介意把代码的相关部分贴上去吗?我认为这与你反复增加顶部插图4有关。。。我将编辑我的答案,一旦我看到相关的代码

编辑:所以我不熟悉Monotouch。。。从您粘贴的代码中,我假设构造函数确实被调用过一次。我认为Monotouch框架中可能存在一个缺陷,导致每次点击按钮时imageinsets都会移动指定的量(向下4)。我将按以下顺序检查:

  • 绑定到按钮的委托方法没有指向构造函数
  • 将插入更改为(8,0,0,0),点击5下,您是否会看到与上面相同的图像(10倍)。如果是这样的话,这可能是monotouch框架的问题,或者是您如何连接委托方法的问题

  • 抱歉,我不熟悉monotouch,因此无法提供更多帮助。除非您被锁定在使用Monotouch,否则我强烈建议您学习本机Objective-C并以本机方式编程,以避免此类小陷阱和麻烦。Objective-C和iOS SDK非常优雅。

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

    使用Objective-C在XCode中创建应用程序时也会发生同样的情况。是的(8,0,0,0)会使光晕崩溃更快。没有附加代理。它是默认的单视图项目。我使用storyboard designer添加了一个工具栏和一个UIBarButtonItem。为按钮创建了一个出口。方法在问题正文中,因为网站不允许我在此处发布。我不熟悉故事板,但我知道您可以从Interface Builder中指定标题/图像插入。尝试从IB内设置图像插入,我认为这将解决您的问题。还要确保初始化后没有重新创建行/按钮。