如何解决表格中的数据会在我们向上滚动或向下滚动页面时显示和消失
| 我已经创建了一个分组的表格视图,如下图所示。但是,当我们向上滚动(或)向下滚动页面时,表格行中的数据会出现并消失,当我们向上滚动前两行时(视图之外)会上升(如果我们向下滚动),那么两行的值将相同,是这样吗?谁能帮我 提前致谢。 像下面的代码,我正在设计表单元格,其中“ 0”是类,我正在创建像标签框架,文本字段框架- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static Nsstring *CellIdentifier = @\"Cell\";
CustomCellStudentData *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomCellStudentData alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
switch(indexPath.section)
{
case 0:
switch (indexPath.row)
{
case 0:
{
tfText[0] = [[UITextField alloc] initWithFrame:CGRectMake(100,10,200,40)];
cell.accessoryView = tfText[0];
tfText[0].delegate=self;
tfText[0].placeholder =@\"<Student Name>\";
cell.primaryLabel.text =@\"Student Name: \";
}
break;
case 1:
{
tfText[1] = [[UITextField alloc] initWithFrame:CGRectMake(100,40)];
cell.accessoryView = tfText[1];
tfText[1].delegate=self;
tfText[1].placeholder =@\"<Student Age>\";
cell.primaryLabel.text =@\"Student Age: \";
}
}
}
解决方法
cell = [[[CustomCellStudentData alloc] initWithFrame:CGRectZero reuseIdentifier:nil] autorelease];
,UITableView
重复使用单元,以免造成内存中断。一旦两个单元上升,它们就会进入可重复使用的单元池。如果池不为空,则“ 4”从该池返回一个单元格(此处与标识符有关)。由于表视图需要用于滚动新行的单元格,因此它从池中获取单元格并将其提供给您进行重新配置。因此,为行0和1配置单元格时附加到该单元格的文本字段仍然保留,除非您明确删除。由于我们没有要获得的单元格,因此我们应该重置所做的所有自定义并将其配置为新的单元格。在这种情况下,无论进入哪个单元格,都应先删除文本字段作为附件视图。
,迪帕克所说的是正确的。
将来,如果您将任何subView添加到单元格视图,请添加到他的答案中。在单元上添加任何内容之前,请将其删除。采用
for(UIView * view in cell.contentView.subviews){
[view removeFromSuperview]; view = nil;
}
在自定义单元之前。
是的,请提高您的接受率。回到您之前提出的问题并接受一些答案应该会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。