gpt4 book ai didi

ios - dequeueReusableCellWithIdentifier 改变多个 UIPickerviews 的值

转载 作者:行者123 更新时间:2023-11-28 21:30:05 24 4
gpt4 key购买 nike

我正在创建一个具有 pickerView 的自定义单元格,当我运行该应用程序时,它会加载所有具有选择器 View 的单元格。一次可以看到 4 个单元格,当我更改第一个选择器 View 的值并向下滚动时。每第 4 个选择器的值已更改。我得到所有选择器 View 的值,它返回正确的值,意味着它只更改第一个选择器 View 的值。

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

AddTaskTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"addTaskCell" forIndexPath:indexPath];

AddTaskDetails *task =[self.tasksArray objectAtIndex:indexPath.row];
NSAttributedString *attributedString = [self attributedTextForTask:task.taskDetail];
cell.taskDetails.attributedText = attributedString;
cell.hourePicker.tag = indexPath.row;
[cell.hourePicker selectRow:0 inComponent:0 animated:YES];
cell.addDescriptionBtn.tag = indexPath.row;

[cell.addDescriptionBtn addTarget:self action:@selector(didTapAddDescButton:) forControlEvents:UIControlEventTouchUpInside];

return cell; }

最佳答案

发生这种情况是因为正在重新使用单元格,但从未重置选择器。

配置要显示的单元格时,需要先将选择器设置为默认值,然后再将其设置为该单元格的正确值(如果适用)。

您需要将选择器中选择的值存储在表格单元格以外的某个地方。表格单元格将被重新使用,因此您需要一个数据结构(大概是您的数据源)。

关于ios - dequeueReusableCellWithIdentifier 改变多个 UIPickerviews 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com