2011-08-27 52 views
0

我有一个带有自定义单元格(用于检查和取消选中单元格上的图像)的每个部分中有5个部分和可变行数的tableview。当我在第一节中选择一行时,tableview也会选择最后一节中的任何一行。有关刻度线和重新加载单元格的UITableView问题

而当我上下滚动时,选中的行随机移动到部分中。

问题是,当我删除tableview中的一个部分时,它不在那里。即使是很多部分。

任何人都可以帮助我吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *kCustomCellID = @"MyCellID"; 
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:kCustomCellID]; 
    if (cell == nil) 
    { 
     cell = (CustomCell *) [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCustomCellID]autorelease]; 
    } 

这是我使用的代码。

我确定我在某个地方犯了一个错误。但是,我无法找到它。

+0

指定我觉得有什么不对劲时重用细胞的细胞。你可以发布你的'tableView:cellForRowAtIndexPath:',我有强烈的感觉问题在于那里 –

回答

0

这是因为重新使用表中的单元格,请详细了解表重用方法。 要详细了解对单元格所做的更改将被复制到其他单元格,因为这些单元格将重用于可查看的单元格。

0

我们需要看一些代码来正确诊断问题,特别是- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {的实现。

您是否正确重用在apples docs

static NSString *cellIdentifier = @"MyAwsomeCell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 
} 
相关问题