2013-07-16 50 views
0

所有UITableView的自定義控制,當特定的按鈕對細胞

也許可能同樣的問題問了很多次不同的方式壓的UILabel的變化值。但是我的情況有些不同。

我有表,其中我有大約10個細胞,現在每個單元都有不同的自定義控件(即的UILabel,UIButton的)等

現在我想,當我點擊細胞0它改變標籤上的按鈕(自定義的UILabel和而不是單元格標籤)值的同一單元格上,而無需重新加載整個表格。

enter image description here

回答

0

您可以更新的UITableView的perticular細胞只是你有行和使用下面的方法來更新它的商店indexPath。

[self.myTablviewname beginUpdates]; 

[self.myTablviewname reloadRowsAtIndexPaths:[NSArray arrayWithObject:button.indexPath] withRowAnimation:UITableViewRowAnimationNone]; 

[self.myTablviewname endUpdates]; 

此外,您可以根據您的方便給動畫行。

+0

感謝您的回答,我有這個選項,整個行更新動畫,但我不想那樣。我只需要更改特定的標籤值,就像我們用簡單的視圖標籤和按鈕完成的一樣。 –

+0

是的,你可以這樣做只是設置UITableViewRowAnimationNone。 –

+0

這很好,但我的UILabel值不是來自通過它綁定UITableView的數組,因此如果沒有該如何更改該單元格中任何特定標籤的值。 –

1

肯定是你的自定義單元格類,你在這個方法

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

你寫這樣的代碼

cell.btnAdd.tag=indexPath.row; 
[cell.btnAdd addTarget:self action:@selector(AddMethod:) forControlEvents:UIControlEventTouchUpInside]; 

的屬性分配給UIButton的這樣

@property(strong,nonatomic) IBOutlet UIButton *btnAdd; 

和接下來的事情並在此課上寫下此代碼

-(void)AddMethod:(UIButton *)btnAdd 
    { 
    NSIndexPath *indexPath=[NSIndexPath indexPathForRow:btnAdd.tag inSection:0]; // if section is 0 
      customcell *cell = (customcell*)[maintableView cellForRowAtIndexPath:indexPath]; 
    cell.yourlabelname.text=[NSString stringWithFormat:@"%d",[yourlabelname.text intValue] + 1]; 
    }