我的clickCount
中有一个CustomCell
标签,我希望在rowClick
上增加其值。
假设我的这个标签的当前值是5然后我想在行单击时增加它并在表中同时更新它。
我正在使用reloadRowsAtIndexPaths
,但它没有更新标签文本,此后调用cellForRowAtIndexpath
并重置标签以前的值。
答案 0 :(得分:0)
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
NSString *Str= [[ArrProductInCart objectAtIndex:indexPath.row] valueForKey:@"Product_Count"];
int Quantity=[Str intValue];
Quantity=Quantity+1;
StrQuantity=[NSString stringWithFormat:@"%d",Quantity];
CGPoint correctedPoint = [sender convertPoint:sender.bounds.origin toView:tbl];
NSIndexPath *indexPath = [tbl indexPathForRowAtPoint:correctedPoint];
[self updateCell:indexPath withValue:[NSString stringWithFormat:@"%@",StrQuantity]];
}
- (void)updateCell:(NSIndexPath *)indexpathValue withValue:(NSString *)value
{
NSDictionary* dict = [Array_That_maintain_Count_Values objectAtIndex:indexpathValue.row];
[dict setValue:value forKey:@"Product_Count"];
[Array_That_maintain_Count_Values replaceObjectAtIndex:indexpathValue.row withObject:dict];
[tbl reloadRowsAtIndexPaths:@[indexpathValue] withRowAnimation:UITableViewRowAnimationFade];
}
现在,Array_That_maintain_Count_Values将包含每个索引路径的点击次数。 希望它会帮助你!!
答案 1 :(得分:0)
首先,您需要有一个变量来存储计数。取决于你想要这样的行数。如果有多个,则需要一个像[Int]
这样的本地数组。假设您在第0部分,第0行有一个单元格,您想要此功能,并且它的初始值为5.所以您将拥有
var count = 5
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! Cell
cell.label.text = String(count)
return cell
}
现在您需要处理单元格单击事件。单击单元格时,您需要先增加此计数,然后重新加载单元格,以便触发cellForRow
更新标签。所以你需要
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.deselectRow(at: indexPath, animated: true)
if indexPath.row == 0 && indexPath.section == 0 {
self.count ++
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .none)
}
}