iPad:UIButton需要多次尝试才能捕捉到动作

时间:2012-05-04 14:57:45

标签: iphone objective-c ios ipad ios-universal-app

我正在开发一款通用应用程序,其中有一个UIButton可以正常使用iPhone,但是当我在iPad上点击它时,需要多次点击才能发生触摸事件。

e.g。点击5-6后,它会执行点击事件。

以下是UIButton代码。请帮忙。

UIView *footer = [[[UIView alloc] initWithFrame:(CGRectMake(0, 0, self.tableView.frame.size.width, 54))] autorelease];
float buttonWidth = (int)((self.tableView.frame.size.width - 12 - 12) / 3);
float buttonHeight = 44;

if (clientState.Devicetype == 1) // 1=Ipad
    buttonHeight = 90;
cash = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];

cash.frame = CGRectMake(6, 10, buttonWidth, buttonHeight); 
[cash setTitle:@"Cash" forState:UIControlStateNormal];
[cash setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled];
[cash addTarget:self action:@selector(handleCash:) forControlEvents:UIControlEventTouchUpInside];
cash.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin;

if (clientState.Devicetype == 1) // 1=Ipad
{
    cash.titleLabel.font = [UIFont systemFontOfSize:28];    
}

[footer addSubview:cash];

self.tableView.tableFooterView = footer;

2 个答案:

答案 0 :(得分:1)

您应该检查以确保您的按钮尺寸正确:

[cash sizeToFit]

我已经体验到,如果其他视图阻止了它(并且您点击按钮的那一部分它将不会触发事件)它将需要几次点击,因为您最终按下未被覆盖的按钮。因此,请确保按钮顶部没有其他框架/边界,并确保按钮尺寸正确。

答案 1 :(得分:0)

我同意@Inturbidus,它可能是另一个透明视图,涵盖了部分按钮。我发现解决此问题的最佳方法是更改​​所有其他视图(滚动视图等)的背景颜色,以确保它们的行为与我认为的相似。有时当你看到它们实际定位在背景颜色的位置时会让你感到惊讶。