0

を含むカスタムセルを持つ行を含むテーブルビューがありますUIButton。ただし、ボタンが常にアクションを起動するとは限りません。これが私のコードです:

   submitButton = [[UIButton alloc] init];

    [[submitButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
    [submitButton setClipsToBounds: YES];
    submitButton.backgroundColor = [UIColor grayColor];
    [submitButton setTitle:@"Send" forState:UIControlStateNormal];
    [self.contentView addSubview:submitButton];
    [submitButton addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
    [submitButton release];

これはカスタムセルで呼び出されます-(id)initWithStyle:

メソッドは次のbuttonActionようになります。

 -(void)buttonAction
 {
     NSLog(@"Button Clicked!");
 }

を起動させる唯一の方法はbuttonAction、ボタンを押してセルのフレーム内のどこかで離すことですが、ボタン自体の内側ではないようです。なぜでしょうか?

* UPDATE * 問題はまだ存在しますが、ボタンを起動させるためのより一貫した方法は、セル/行の境界内で離す限り、クリックして左または右にドラッグして離すことであることがわかりました.

更新 #2 iOS 6.0 を使用すると、意図したとおりに動作するようです。しかし、5.0 または 5.1 ではそうではありません。

4

2 に答える 2

0

同じメソッド呼び出しをに割り当ててみてくださいTouchUpOutside。そうすれば、毎回機能するはずです。TouchUpInsideは、ボタンの範囲内で指を離した場合にのみ起動されます。

于 2013-01-09T21:09:31.953 に答える
0

試してみてください[submitButton sizeToFit]。あなたのボタンに任意のサイズがあるかどうか疑問に思っています (私はあなたがそれを与えているのを見ていないので)。

[UIButton buttonWithType: UIButtonTypeCustom]また、alloc-init の代わりにボタンを作成します。

于 2013-01-09T19:27:07.147 に答える