4

.h ファイルに次のように構成するボタンがあります。

- (IBAction)addBusiness:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *planBusinessButton;

次に、.m ファイルでこれを行います。

- (IBAction)addBusiness:(id)sender 
{
    NSLog(@"Plan business clicked 1");
}

- (IBAction)planBusinessButton:(id)sender 
{
    NSLog(@"Plan business clicked 1");
}

しかし、私の onLoad では、次のようなことを行います。

CGPoint pt = planBusinessButton.center;
    pt.y -= 275;
    planBusinessButton.center = pt;

問題は、ボタンをクリックしたときに IBAction でボタンのクリックが発生しないことです。

ボタンの位置を変更すると、ボタンがクリックされない理由に影響がありますか?

IBAction でボタンのクリックが発生しないのはなぜですか?

ありがとう!

4

3 に答える 3

3

編集: ボタンを移動しても、ビューから移動したり、タップをインターセプトする他のビューの下に移動したりしない限り、アクションの実行には影響しません。

タップでボタンが起動しない場合は、次のことを確認してください。

  • IB 接続が正しく接続されている
  • メソッドが適切な場所に存在する
  • ボタンはユーザーの操作に対して有効になっています

ビューはまだ準備ができていないため、viewDidLoad メソッドでビューの変更を行わないようにしてください...代わりに、viewDidAppear メソッドでボタンの中心を設定してみてください。

于 2012-07-30T22:46:45.153 に答える
3

おそらく。Gesture Recognizer は、ボタンが移動した場所でイベントを処理している可能性があります。または、別のビューが新しい場所でボタンをブロックしている可能性があり、ボタンを前面に移動する必要があります。また、イベントでトリガーする場合は、これを viewDidAppear または IBAction に入れる必要があります。

于 2012-07-30T22:47:31.450 に答える
1

planBusinessButton.frame がその super.frame の外にないことを確認してください。例: ボタンのフレームがこの (0,-200,100,200) の場合、ボタンがそのスーパー ビューに追加されると、クリック イベントは処理されません。

于 2012-07-30T22:48:59.810 に答える