2012-05-04 3 views
2

ユニバーサルアプリケーションを開発していて、iPhoneでうまく動作するUIButtonがありますが、iPadでクリックするとタッチイベントが発生する。iPad:UIButtonはアクションをキャッチするために多くのタップを必要とします

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

私はかつてUISliderの似たような問題を扱っていましたが、それはiPadがスライダーがある領域のタッチスクリーンに問題があることが判明しました。あなたのアプリを別のiPadで試してみてください。 –

答えて

1
あなたのボタンが正しいサイズであることを確認するためにチェックする必要があり

[現金sizeToFit]

私はいくつかの他のビューがそれを阻止する(とされている場合は、クリックしたことを経験しましたあなたのボタンのその部分はイベントから発射されません)最終的にはカバーされていないボタンを押すので、数回クリックする必要があります。そのため、ボタンの上に他のフレームや境界線がないことを確認し、ボタンのサイズが正しく設定されていることを確認してください。

0

私は@Inturbidusに同意します。おそらくボタンの一部を覆う別の透明なビューです。私はこれをトラブルシューティングする最良の方法は、他のすべてのビュー(scrollviewsなど)の背景色を変更して、彼らが私が思うように動作していることを確認することです。時折、背景色をオンにして実際にどこに配置されているかを見て、あなたを驚かせることがあります。

関連する問題