我有一个带有自定义单元格的6行tableView。
自定义单元格具有UILabel和UISwitch。 在方法“cellForRowAtIndexPath:”中我有:
static NSString *CellIdentifier = @"optionsCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UISwitch *optionsSwitch = (UISwitch *)[cell viewWithTag:300];
UILabel *optionsLabel = (UILabel *) [cell viewWithTag:200];
NSLog(@"%@", optionsSwitch);
NSLog(@"%@", optionsLabel);
首次实例化tableView时(从故事板中)我正确地获取了两个对象(我只是为表视图的第一行添加结果):
但是当我将reloadData方法发送到tableView时(可以通过编程方式更改UISwitch状态,以便在显示之前更新tableview)我在UISwitch为零时正确获取UILabel:
UILabel的工作原理和UISwitch不工作?
UISizeClasses未启用,正如另一篇关于此问题的帖子所示。
谢谢,Corrado
答案 0 :(得分:1)
您可以在代码中的其他位置更改交换机的标记,这可能是因为当交换机更改时,您可以从中获取行号。
实际上你应该有一个自定义单元格,它有视图的出口,所以你根本不需要使用标签,单元格应该处理开关更改以更新模型或调用一些回调到视图控制器