Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带有自定义控件的UITableView,在按下单元格上的特定按钮时更改UILabel的值_Ios_Uitableview - Fatal编程技术网

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

Ios 带有自定义控件的UITableView,在按下单元格上的特定按钮时更改UILabel的值,ios,uitableview,Ios,Uitableview,全部 同样的问题可能以不同的方式被问了很多次。但我的情况有些不同 我有一个大约10个单元格的表格,现在每个单元格都有不同的自定义控件(即UILabel、UIButton)等 现在我想,当我单击单元格0上的按钮时,它会更改同一单元格上的标签(自定义UILabel,而不是单元格标签)值,而无需重新加载整个表 您可以更新UITableview的特定单元格,只要您拥有该行的存储indexPath并使用以下方法进行更新即可 [self.myTablviewname beginUpdates]; [sel

全部

同样的问题可能以不同的方式被问了很多次。但我的情况有些不同

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

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


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

[self.myTablviewname beginUpdates];

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

[self.myTablviewname endUpdates];

您还可以根据自己的方便为行设置动画。

是您的自定义单元格类,您可以这样将属性指定给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];
   }

感谢您的回答,我有这个选项,其中整行更新动画,但我不希望这样。我只需要更改特定的标签值,就像我们使用简单视图标签和按钮所做的那样。是的,您可以这样做,只需设置UITableViewRowAnimationNone。这很好,但我的UILabel值不是来自绑定UITableView的数组,所以,若并没有这些,我如何更改该单元格中任何特定标签的值。您可以根据标签所在的行为每个标签设置标签,然后根据标签访问标签。你可以只添加你的桌面视图的截图,然后它清楚的想法。