2009-08-14 70 views
0

我添加了一個按鈕,一個的tableview細胞的工作,但我有兩個問題是:的UIButton沒有的tableview細胞

1)我已經調用按鈕上的setTarget:action:方法,但action:方法不會被調用:

[playButton addTarget:self action:@selector(playButtonPressed:) 
       forControlEvents:UIControlEventTouchUpInside]; 

2)細胞本身結束了對觸摸得到選擇,調用didSelectRowAtIndexPath,我不希望發生的事情。

我已驗證該按鈕至少可以通過設置其屬性showsTouchWhenHighlighted並在按下時看到它「發光」來看到觸摸。但不管出於什麼原因,它看起來像觸摸事件然後被傳遞到它的單元超級視圖,而不是由按鈕本身處理。

我試過將按鈕直接添加到單元的contentView以及其他單元格子視圖中,但沒有任何效果。我還確保按鈕的超級視圖都是可觸摸的。

有什麼想法?

霍華德

回答

0

有兩種方法可以做到這一點,最簡單的是將按鈕添加到與IB細胞,設置標籤號到按鈕,當你cellForRowAtIndexPath方法中更新小區使用的東西例如:

UIButton *myButton = (UIButton *)[cellYouAreUpdating viewWithTag:-1969]; 

正在-1969您以前在IB中設置的標記號和cellYouAreUpddating單元格引用。之後,您將有一個單元格中的按鈕的引用,您可以用適當的選擇器設置添加目標。

希望這會有所幫助。

0

我是你的按鈕,Y軸或Y軸+高度比其超強的視野下(超級觀點可能是細胞或細胞的內容查看)查詢上海華

+0

我不認爲這是問題。當我發佈這個問題時,我希望我提供了更多的代碼上下文,因爲我懷疑問題在別處。我已經將按鈕添加到uitableview單元格中,沒有任何問題。以上代碼與現在適用於我的代碼相同。我目前使用的另外兩條線是:\t \t button.frame = CGRectMake(244,5,75,40); [button setTitle:@「完成!」 forState:UIControlStateNormal]; – hkatz 2011-07-08 04:33:22

0

的heght - >爲了您的第一個問題,使用此代碼

UIButton *imgV1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
[imgV1 setFrame:CGRectMake(0, 0, 320, 53)]; 
[imgV1 setBackgroundColor:[UIColor clearColor]]; 
[imgV1 setImage:[UIImage imageNamed:@"expired.png"] forState:UIControlStateNormal]; 
[imgV1 addTarget:self action:@selector(show_product_details:) forControlEvents:UIControlEventTouchUpInside]; 

- >關於第二個問題使用這種在

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  { 

[細胞setSelectionStyle:UITableViewCellSelectionStyleNone]; }