我有TableViewController
我的自定义TableViewCell
,每行有两个按钮,一个隐藏另一个不是,当我点击显示按钮时我想显示另一个按钮,我已经解决了这个问题,我的问题是,如果我向下滚动其他隐藏的按钮是因为Reuseidentifier而显示的。
如果只显示我选择的行中的按钮,我该怎么做。
希望我明白,如果没有,请问我。
谢谢大家。
答案 0 :(得分:1)
当你滚动tableView时,剩下的按钮是隐藏的,因为你在cellForRowAtIndexPath
中写了setHidden方法而没有放任何条件所以拿一个NSMutableArray并为它分配内存。无论您选择哪个索引,只需添加MutableArray.Then in cellForRowAtIndexPath
如果该数组包含indexPath,则放置一个条件不要隐藏其他隐藏按钮。
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CutomTableView *cell=[tableView dequeueReusableCellWithIdentifier:@"CellId" forIndexPath:indexPath];
[cell.show setTag:indexPath.row];
[cell.show addTarget:self action:@selector(showButtonACtion:) forControlEvents:UIControlEventTouchUpInside];
NSIndexPath *selectedIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:0];
//self.selectedRow is NSMutable Array
if ([self.selectedRow containsObject:selectedIndexPath]) {
[cell.hideBtn setHidden:NO];
}else{
[cell.hideBtn setHidden:YES];
}
return cell;
}
-(void)showButtonACtion:(UIButton*)sender{
NSIndexPath *selectedIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:0];
[self.selectedRow addObject:myIP];
[self.tableV reloadData];
}
答案 1 :(得分:0)
当您单击特定按钮以显示另一个按钮时,只需保存该NSIndexpath。
例如, 如果单击第二行,则在NSMutableDicionary中添加值
[mutableDict setValue:@"YES" forKey:[NSString stringWithFormat:@"%@", indexPath.row]];
然后在cellForRowAtIndexPath方法中检查特定的indexPath。
每当你找到@" YES"对于特定行,实现所需的逻辑以显示或隐藏按钮。
希望这会对你有所帮助。
答案 2 :(得分:0)
-(IBAction)firstButton:(UIControl *)sender
{
UIButton *button = (UIButton*)sender;
NSIndexPath *myIP = [NSIndexPath indexPathForRow:sender.tag inSection:0];
CustomCell *cell = (CustomCell*)[self.tableView cellForRowAtIndexPath:myIP];
[cell.button2 setHidden:NO];.
}