2009-08-14 29 views
0

テーブルビューセルで動作していないが、私は2つの、それに問題抱えている:私はボタンのsetTarget:action:メソッドを呼び出しましたUIButtonは、私はテーブルビューのセルにボタンを追加しました

1)が、action:をメソッドが呼び出されることは決してありません:

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

2)セル自体は、タッチで選択されてしまう、私は起こるしたくないdidSelectRowAtIndexPathを呼び出します。

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

ボタンをセルのcontentViewに直接追加するだけでなく、他のセルのサブビューにも影響はありません。また、ボタンのスーパービューがすべてタッチ対応であることを確認しました。

どのような考えですか?

ハワード

答えて

0

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

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

-1969以前にIBで設定したタグ番号とセルのYouAreReferenceセル参照を更新します。その後、セル内のボタンへの参照があり、適切なセレクタで追加ターゲットを設定できます。

これが役に立ちます。

0

あなたのボタンY軸又はY軸+高さはそのスーパービューよりも高くなっていることマイ・スーパー

+0

私はそれが問題ではないと思います。問題を投稿したときにもう少しコードのコンテキストを提供したいと思っています。なぜなら、この問題は他の場所にあると思われるからです。私はそれ以来、問題なくuitableviewセルにボタンを追加しました。上記のコードは今私にとってうまくいくものと同じです。私が現在使っている2つの追加ラインは、\t \tです。button.frame = CGRectMake(244,5,75,40); [button setTitle:@ "完了!" forState:UIControlStateNormal]; – hkatz

0

のheghtチェック(スーパービューは、細胞または細胞のcontentviewかもしれない) - >あなたの最初の問題のために、使用することをこのコード

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]; 

- >あなたの第二の問題について

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

でこれを使用し、[セルのsetSelectionStyle:UITableViewCellSelectionStyleNone]; }

関連する問題