【问题标题】:UIBarButtonItem - Invalid tap glow sizeUIBarButtonItem - 无效的点击发光大小
【发布时间】:2012-07-25 14:53:47
【问题描述】:

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

如果我不设置 imageInsets,问题不会出现。 UIToolbar 中的所有按钮都会出现问题。我没有水龙头处理程序。制作更大的插图(例如 8,0,0,0)更快地产生相同的结果。

感谢任何有关如何解决问题的建议。

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

这是默认的单视图项目。我使用情节提要设计器在其中添加了一个工具栏和一个 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

【问题讨论】:

    标签: iphone ios uitoolbar tap


    【解决方案1】:

    没有代码很难看出问题所在。您介意发布代码的相关部分吗?我认为这与您反复将顶部插入增加 4 有关...一旦我看到相关代码,我将编辑我的答案。

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

    1. 绑定到按钮的委托方法未指向构造函数。
    2. 将插图更改为 (8,0,0,0),点击 5 次后,您会看到与上面相同的图像 (10x)。如果是这样,则可能是 monotouch 框架或您如何连接委托方法的问题。

    抱歉,我对单点触控不熟悉,因此无法提供更多帮助。除非你被锁定在使用 Monotouch,否则我强烈建议你学习原生 Objective-C 和原生编程,以避免像这样的小陷阱和头痛。 Objective-C 和 iOS SDK 非常优雅。

    【讨论】:

    • 使用 Objective-C 在 XCode 中创建应用程序时也会发生同样的情况。是 (8,0,0,0) 使辉光坍塌更快。没有附加委托。
    • 这是默认的单视图项目。我使用情节提要设计器在其中添加了一个工具栏和一个 UIBarButtonItem。为按钮创建了一个出口。方法在问题正文中,因为网站不允许我在这里发布。
    • 我不熟悉 Storyboard,但我知道您可以在 Interface Builder 中指定标题/图像插图。尝试从 IB 中设置图像插图,我认为这将解决您的问题。还要确保您没有在初始化后重新创建行/按钮。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      相关资源
      最近更新 更多