0

テーブルビュー セルにボタンを追加しましたが、2 つの問題があります。

1)setTarget:action:ボタンでメソッドを呼び出しましたが、メソッドが呼び出されaction:ません:

[playButton addTarget:self action:@selector(playButtonPressed:) 
                 forControlEvents:UIControlEventTouchUpInside];

2)セル自体がタッチで選択されてしまい、 が呼び出されますがdidSelectRowAtIndexPath、これは望ましくありません。

showsTouchWhenHighlightedプロパティを設定し、ボタンが押されたときに「光る」ことを確認することで、ボタンが少なくともタッチを認識していることを確認しました。しかし、何らかの理由で、タッチ イベントがボタン自体によって処理されるのではなく、セルのスーパービューに渡されているように見えます。

contentViewボタンをセルの、および他のセルのサブビューに直接追加しようとしましたが、効果はありません。また、ボタンのスーパービューがすべてタッチ対応であることも確認しました。

何かご意見は?

ハワード

4

3 に答える 3

0

これを行うには2つの方法があります。最も簡単な方法は、IBを使用してセルにボタンを追加し、ボタンにタグ番号を設定し、cellForRowAtIndexPathメソッドを使用しているときに、セルを更新する方法を次のように使用します。

UIButton *myButton = (UIButton *)[cellYouAreUpdating viewWithTag:-1969];

-1969であるため、以前にIBおよびcellYouAreUpdatingでセル参照に設定したタグ番号。その後、セル内のボタンへの参照があり、適切なセレクターを使用してターゲットの追加を設定できます。

お役に立てれば。

于 2009-10-03T16:24:11.263 に答える
0

-->最初の問題については、このコードを使用してください

UIButton *imgV1 = [UIButton buttonWithType:UIButtonTypeCustom];
[imgV1 setFrame:CGRectMake(0, 0, 320, 53)];
[imgV1 setBackgroundColor:[UIColor clearColor]]; 
[imgV1 setImage:[UIImage imageNamed:@"expired.png"] forState:UIControlStateNormal];
[imgV1 addTarget:self action:@selector(show_product_details:) forControlEvents:UIControlEventTouchUpInside];

-->2番目の問題では、これを使用します

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath     {  

[セル setSelectionStyle:UITableViewCellSelectionStyleNone]; }

于 2013-01-24T11:33:48.617 に答える
0

My be your button Y axis OR Y axis + height is Higher its super View (スーパー ビューはセルまたはセルのコンテンツ ビューである可能性があります) スーパービューの高さを確認してください

于 2011-07-05T10:15:53.453 に答える