2011-07-06 11 views
1

私はUIButtonを持っています。私がそれを動かすと、もはやタッチに反応しないことがわかった。私がこれをどのように決定したかを詳しく説明しましょう:100ピクセル幅のボタンを50ピクセル右にシフトすると、左半分だけが指をタップして応答しました。UIButton - フレームを変更するとタッチの反応が変わります

フレームを動的に変更すると、ボタンに「タッチチェッカーを更新する」と伝える方法を教えてください。私はxibではなく、コードでフレームを変更しています。

初期化:

MATCGlossyButton *repeat = [[MATCGlossyButton alloc] init]; 
    [repeat addTarget:self action:@selector(repeatPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [repeat setTitle:@"Repeat" forState:UIControlStateNormal]; 
    repeat.buttonColor = [UIColor brownColor]; 
    repeat.backgroundColor = [UIColor clearColor]; 
    repeat.cornerRadius = 20; 
    repeat.frame = CGRectMake(200,208,105,50); 

そして後で:

repeat.frame = CGRectMake(265, 208, 105, 50); 
+0

あなたはコードまたはIBでそれを変更していますか? – PengOne

+0

私はコードでそれを変更しています。 – StanLe

+1

その後、関連コードを投稿してください。 – PengOne

答えて

1

それはあなたがその親ビューの境界を越えてボタンを移動することは可能ですか?クリッピングがオフになっていても、タッチはビューの外側には伝播しません。

ご意見の境界線を視覚化する簡単な方法はfolowingを行うことです。

#import <QuartzCore/QuartzCore.h> 

[...]

view.layer.borderWidth = 1; 
view.layer.borderColor = [UIColor redColor].CGColor; 
+0

レイヤーが間違っていました。ボタンの真ん中に赤い線がありました。 self.view.frameとself.view.layer.frameを適切に変更してみました。赤い線は固定されています。しかし!ボタンはまだ右半分には反応しません。 – StanLe

関連する問題