2012-09-01 104 views
4

我增加了一個新的UIButtonUIButton的水龍頭沒有響應

UIButton *newButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [newButton setFrame:CGRectMake(x, y, width, height)]; 
    [newButton setTitle:@"" forState:UIControlStateNormal]; 
    [newButton setTag:x+INDEX_OFFSET]; 
    [newButton setBackgroundImage:image forState:UIControlStateNormal]; 
    [newButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside]; 

    [self addSubview:newButton]; 
    [self bringSubviewToFront:newButton]; 

,我可以看到它在屏幕上,但它不響應敲擊手勢。它應該叫「buttonPressed」。任何幫助將超級!

+0

這是代碼在視圖控制器?如果是這樣,你想添加按鈕self.view而不是self。你能顯示你的按鈕處理程序的完整代碼嗎? –

+0

@ShaggyFrog如果這是問題,再次,它會崩潰與無法識別的選擇器異常的應用程序。 – 2012-09-01 16:53:08

+0

當您按下按鈕時,您會看到突出顯示的按鈕嗎?如果不是,也許有一個觀點阻礙水龍頭。 –

回答

9

其中一個可能的問題是,您要將按鈕添加到超級視圖的框架位置。只是爲了檢查它很容易嘗試將clipToBounds屬性設置爲在其超級視圖範圍內,然後運行該應用程序。如果你沒有看到按鈕,這意味着你將按鈕的位置設置在最佳位置,這就是爲什麼它不響應觸摸。

+0

就是這樣。謝謝。 [self.superview addSubview:newButton];解決了它。 – Ernest

1

另一個可能的問題是,如果你添加UIButton作爲subviewUIImageView(你不應該,但它的工作原理)。在這種情況下,您可以將其添加到UIView或將UIImageViewuserInteractionEnabled屬性設置爲YES

相關問題