UITableView带有自定义控件,当按下单元格上的特定按钮时,更改UILabel的值

时间:2013-07-16 13:20:19

标签: ios uitableview

所有

可能会以不同的方式多次询问相同的问题。但我的情况有所不同。

我有桌子,我有大约10个单元格,现在每个单元格都有不同的自定义控件(即UILabel,UIButton)等。

现在我希望当我单击单元格0上的按钮时,它会在同一单元格上更改标签(自定义UILabel而不是单元格标签)值,而无需重新加载整个表格。

enter image description here

2 个答案:

答案 0 :(得分:1)

是您的自定义单元格类,您将属性分配给UiButton,如此

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

以及此方法的下一步

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

你写的就像这段代码

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

并在此课程中编写此代码

   -(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];
   }

答案 1 :(得分:0)

您可以更新UITableview的特定单元格,只需存储该行的indexPath并使用以下方法进行更新。

[self.myTablviewname beginUpdates];

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

[self.myTablviewname endUpdates];

此外,您可以根据自己的方便将动画添加到行中。