iOS:如何指向 UITableView 上的特定控件



我已经在UITableViewCell上放置了UISwitch,UILabel和几个按钮,现在我需要它们在UISwitch更改状态时做出正确的反应(显示/隐藏)。

我的问题是,上面提到的 UILabel 和按钮隐藏并源自随机单元格,而不是在放置 UISwitch 的特定单元格中。

我走得这么远:

-(void)hideQualityBtn:(id)sender
{
if(sender.tag==9001)
{
    UITableViewCell *cell=((UITableViewCell*)[sender superview]);
   // cell.control.....hidden=YES;
}
}

非常感谢帮助,提前感谢您。

编辑:

in cellForRowAtIndexPath

self.switchView = [[UISwitch alloc] initWithFrame:CGRectMake(7, 8, 79, 27)];
[switchView addTarget:self action:@selector(setItem:) forControlEvents:UIControlEventValueChanged];
[switchView setTag:9001];
[cell addSubview:switchView];
[cell setIndentationWidth:45];
[cell setIndentationLevel:1];

设置项目甲基:

-(void)setItem:(UISwitch*)sender
{
int n;
UITableViewCell *cell;
// so i'm getting item ID
if(sender.tag==9001)
{
    cell=((UITableViewCell*)[sender superview]);
    n=([self.tableView indexPathForCell:cell].row);
}
item=[self.arr objectAtIndex:n];
NSDate *today=[NSDate date];
NSDateFormatter *formatter =[[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
NSString *now =[formatter stringFromDate:today];
if(sender.on)
{
    DBAccess *access=[[DBAccess alloc]init];
    [access setItemON:item.itemID date:now];
    qualityBtn.hidden=NO;
    [qualityBtn setTitleColor:[UIColor blackColor] forState:normal];
    [qualityBtn setTitle:@"UNDEF" forState:normal];
}
else 
{
    DBAccess *access=[[DBAccess alloc]init];
    [access setItemOFF:item.itemID];
}
}

我的特定问题是如何指向控制位于特定单元格中的控件?

您需要在 tableview:cellForRowAtIndexPath 的实现中设置 UITableViewCell,并保留对 UISwitch 的引用(可能在属性中),以便在发生有趣事件时可以访问它。

最新更新