我猜这很简单。在您的 tableview didSelectRowAtIndexPath 委托方法中,您只需像这样设置按钮颜色和标题。
[buttonName setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[buttonName setTitle:@"Following" forState:UIControlStateNormal];
当您再次单击同一个单元格时,您必须检查按钮文本。您可以通过设置一个布尔值来做到这一点。即,当您选择特定单元格时,将布尔值设置为“是”并将按钮文本设置为“关注”,然后再次单击同一单元格,检查是否设置了布尔值(如果已设置),您可以将文本更改为“关注”。其他选项是您必须将选定的 indexpath 存储在一个可变数组中,并且在每个选择的单元格上尝试在数组中推送和弹出该对象。这是其他步骤
首先在你的 .h 文件中创建一个 Mutablearray
@property (strong,nonatomic) NSMutableArray *selectedIndexPaths;
在你的 viewDidLoad 方法中分配它。
self.selectedIndexPaths = [[NSMutableArray alloc]init];
在你的 .m 文件中添加这个方法
- (void)addOrRemoveSelectedIndexPath:(NSIndexPath *)indexPath
{
BOOL containsIndexPath = [self.selectedIndexPaths containsObject:indexPath];
if (containsIndexPath) {
[self.selectedIndexPaths removeObject:indexPath];
}else{
[self.selectedIndexPaths addObject:indexPath];
}}
现在在您的 didSelectRowAtIndexPath 委托方法中添加此方法以检查该数组是否包含您选择的索引路径。
[self addOrRemoveSelectedIndexPath:indexPath]//call of the method;
BOOL isSelected = [self.selectedIndexPaths containsObject:indexPath];
if(isSelected)
{
//change your button text and color.
}else{//unset your button text and color..}
通过这种方式,您可以轻松管理单元格的索引路径。不管有没有冲突..