2

私はユニバーサルアプリを開発しており、iPhoneで正常に動作するUIButtonがありますが、iPadでクリックすると、タッチイベントを発生させるために多くのクリック試行が必要です。

たとえば、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;
4

2 に答える 2

1

ボタンのサイズが正しいことを確認する必要があります。

[現金 sizeToFit]

他のビューがそれをブロックしている場合 (そして、ボタンのその部分をクリックしてもイベントが発生しない場合) は、カバーされていないボタンを最終的に押すため、数回のクリックが必要になることを経験しました。そのため、他のフレーム/境界がボタンの上にないことを確認し、ボタンのサイズが正しいことを確認してください。

于 2012-05-04T15:05:31.030 に答える
0

私は@Inturbidusに同意します。これは、ボタンの一部をカバーする別の透明なビューである可能性があります。これをトラブルシューティングする最善の方法は、他のすべてのビュー(スクロールビューなど)の背景色を変更して、私が思うように動作していることを確認することです。背景色をオンにして実際に配置されている場所を見ると、驚くことがあります。

于 2012-05-04T15:11:58.480 に答える