2014-01-10 19 views
0

我在UITableView中存在問題,因爲我需要在tableview的每一行上放置一個按鈕,並且如果我單擊該按鈕,它一次被選中並選擇就像切換。如何做到這一點,請幫我解決這個問題。如何選擇UITableView上的單個按鈕

下面是下面的代碼,試圖把它弄出來。我上cellForRowAtIndexPath創建按鈕,如下所示:

UIButton *Btn = [[UIButton alloc]init]; 
Btn .frame = CGRectMake(3, 10, 33, 30); 
[Btn setImage:[UIImage imageNamed:@"deselect.png"] forState:UIControlStateNormal]; 
[Btn addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside]; 
Btn.tag=indexPath.row; 
[cell.contentView addSubview:Btn]; 

method:爲按鈕動作:

-(void)method:(UIButton*)sender 
{ 

    NSIndexPath *indexpath1 = [NSIndexPath indexPathForRow:sender.tag inSection:0]; 

    Btn = (UIButton *)sender; 

    //Btn.tag=sender.tag; 
    [Btn setImage:[UIImage imageNamed:@"select.png"] forState:UIControlStateNormal]; 

} 
+2

您遇到什麼問題?你發佈的代碼會發生什麼? – Caleb

回答

1

您有一個數組來存儲一個單元的按鈕是否被選中或未被。在cellForRowAtIndexPath方法,應設置2個圖像2個狀態UIControlStateNormal和按鈕的UIControlStateSelected

[Btn setImage:[UIImage imageNamed:@"select.png"] forState:UIControlStateSelected]; 
[Btn setImage:[UIImage imageNamed:@"deselect.png"] forState:UIControlStateNormal]; 

然後在method:功能,則基於所述陣列中的值經由Btn.selected切換按鈕的狀態。

0
UIImage * btnLinkNormal = [UIImage imageNamed:@"select.png"]; 
[cell.linkButton setImage:btnLinkNormal forState:UIControlStateNormal]; 

// Add image to button for pressed state 
UIImage * btnLinkHighlighted = [UIImage imageNamed:@"deselect.png"]; 
[cell.linkButton setImage:btnLinkHighlighted forState:UIControlStateHighlighted]; 
相關問題