当前位置 : 主页 > 手机开发 > ios >

ios – 如何在基于节的表视图中获取切换更改事件上单元格的索引路径

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有自定义单元格,右侧有少数单元格.我想要的是在交换机更改事件中存储特定单元格的值.表视图有数字部分,所以我不能为switch设置标签,因为我需要section和row来获取索引路径. 任何建
我有自定义单元格,右侧有少数单元格.我想要的是在交换机更改事件中存储特定单元格的值.表视图有数字部分,所以我不能为switch设置标签,因为我需要section和row来获取索引路径.

任何建议任何替代,但我必须在基于部分的表视图中使用UISwitch.

谢谢

在自定义单元格中添加属性,可帮助您识别单元格所代表的信息.索引路径,数据模型的索引等…

然后向单元格添加一个块属性,当单元格开关发生变化时,您可以调用它来告诉UITableView或任何其他代码.例如

@property (nonatomic,copy) void (^onSwitchChange)(UITableViewCell *cell);

在自定义单元代码中,为UISwitch添加操作处理程序.当它触发时,调用self.onSwitchChange(self),它将通知注册了onSwitchChange块的代码,该代码表示​​交换机已更改以及在哪个单元上.

在创建单元格时的表视图中,按如下方式设置onSwitchChange块:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath
{
  <snip>

  YourUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:yourCellIdentifier forIndexPath:indexPath];
  cell.onSwitchChange=^(UITableViewCell *cellAffected){
    // Add code to deal with the swicth switch using properties of cellAffected
    ... Your handler code here ...
  }];

  <snip>
}

这使您可以处理表视图控制器中的所有更改.希望这可以帮助.

网友评论