2011-07-06 52 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

是否有可能要移動的按鈕,超越其父視圖的邊界?即使剪輯關閉,觸摸也不會傳播到視圖之外。

一個簡單的方法來可視化你的觀點的邊界是做如下因素:

#import <QuartzCore/QuartzCore.h> 

[...]

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

是的圖層是錯的。按鈕正中間有一條紅線。我試着改變self.view.frame和self.view.layer.frame以適合我的橫向屏幕,紅線是固定的。但!該按鈕仍然沒有響應右半部分。 – StanLe