我正在开发一款通用应用程序,其中有一个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;
答案 0 :(得分:1)
您应该检查以确保您的按钮尺寸正确:
[cash sizeToFit]
我已经体验到,如果其他视图阻止了它(并且您点击按钮的那一部分它将不会触发事件)它将需要几次点击,因为您最终按下未被覆盖的按钮。因此,请确保按钮顶部没有其他框架/边界,并确保按钮尺寸正确。
答案 1 :(得分:0)
我同意@Inturbidus,它可能是另一个透明视图,涵盖了部分按钮。我发现解决此问题的最佳方法是更改所有其他视图(滚动视图等)的背景颜色,以确保它们的行为与我认为的相似。有时当你看到它们实际定位在背景颜色的位置时会让你感到惊讶。