Iphone UITableViewCell dequeueReusableCellWithIdentifier不符合顺序

Iphone UITableViewCell dequeueReusableCellWithIdentifier不符合顺序,iphone,cocoa-touch,uitableview,iphone-sdk-3.0,ios4,Iphone,Cocoa Touch,Uitableview,Iphone Sdk 3.0,Ios4,我有一个UITable,其中包含文本字段的自定义单元格很少。然而,当向上和向下滚动时,这些单元格的顺序就会混乱 我搜索过,但这对我来说不起作用,因为我有几个UITextFields,需要从中获取用户输入 谢谢@Dilshan您可以在代码中执行类似的操作来实现您想要的 . . . if(cell == nil) { // create your cell in this block of quotes in the cellForRowAtIndexPath: method to avoid m

我有一个UITable,其中包含文本字段的自定义单元格很少。然而,当向上和向下滚动时,这些单元格的顺序就会混乱

我搜索过,但这对我来说不起作用,因为我有几个UITextFields,需要从中获取用户输入


谢谢

@Dilshan您可以在代码中执行类似的操作来实现您想要的

.
.
.
if(cell == nil)
{
// create your cell in this block of quotes in the cellForRowAtIndexPath: method to avoid making of the cells again, so that your textfield value remain as it is.
.
.
.
//place all the code in this block only.
}
[cell autorelease];
return cell;
对不起,我家里没有xcode,所以我不能给你任何特定的代码

但我想你明白了。

干杯。

@Dilshan您可以在代码中执行类似的操作来实现您想要的

.
.
.
if(cell == nil)
{
// create your cell in this block of quotes in the cellForRowAtIndexPath: method to avoid making of the cells again, so that your textfield value remain as it is.
.
.
.
//place all the code in this block only.
}
[cell autorelease];
return cell;
对不起,我家里没有xcode,所以我不能给你任何特定的代码

但我想你明白了。

干杯。

这是我的密码。CustomTextFieldCell是带有UITextField的单元格。还有一些信息。但是,滚动时,填充的值和这些更改的顺序会发生变化

    static NSString *CellIdentifier = @"CustomTextFieldCell";
    CustomTextFieldCell *cell = (CustomTextFieldCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTextFieldCell" owner:nil options:nil];


        for (id currentObject in topLevelObjects) {
            if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                cell = (CustomTextFieldCell *) currentObject;
                break;
            }
        }
    }

这是我的密码。CustomTextFieldCell是带有UITextField的单元格。还有一些信息。但是,滚动时,填充的值和这些更改的顺序会发生变化

    static NSString *CellIdentifier = @"CustomTextFieldCell";
    CustomTextFieldCell *cell = (CustomTextFieldCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTextFieldCell" owner:nil options:nil];


        for (id currentObject in topLevelObjects) {
            if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                cell = (CustomTextFieldCell *) currentObject;
                break;
            }
        }
    }

您要么需要为每个单元格使用唯一标识符,要么避免完全使用出列机制。如果要执行后一种操作,请在相应的实例变量中存储对每个单元格的引用,或者将它们全部添加到实例变量中存储的集合中

如果您决定这样做,您可以采用以下两种方法之一:在Interface Builder中创建单元格(这会很方便,因为它们可能已经将文本字段嵌套在单元格中,位置很好,等等),然后使用Outlet将其连接起来,或者在
viewDidLoad
init…
方法中以编程方式创建单元格


在这两种情况下,您都不再需要调用
dequeueReusableCellWithIdentifier:
;相反,您可以只返回已经创建的单元格实例。

您需要为每个单元格使用唯一的标识符,或者避免完全使用出列机制。如果要执行后一种操作,请在相应的实例变量中存储对每个单元格的引用,或者将它们全部添加到实例变量中存储的集合中

如果您决定这样做,您可以采用以下两种方法之一:在Interface Builder中创建单元格(这会很方便,因为它们可能已经将文本字段嵌套在单元格中,位置很好,等等),然后使用Outlet将其连接起来,或者在
viewDidLoad
init…
方法中以编程方式创建单元格


在这两种情况下,您都不再需要调用
dequeueReusableCellWithIdentifier:
;相反,您可以返回已经创建的单元格实例。

谢谢您的回复。我做以下事情。请看我的下一篇文章。谢谢你的回复。我做以下事情。请参阅我的下一篇文章。您应该观看WWDC 2010课程128,掌握表视图。在谷歌上搜索它。问题在于表格单元格是可重用的,因为表格中的每一行在视觉上都是相同的,但内容不同。您需要确保返回的表单元格包含请求的索引路径的正确数据,而不仅仅是任何行。观看视频以获取更多详细信息和示例代码。您应该观看WWDC 2010会话128,掌握表视图。在谷歌上搜索它。问题在于表格单元格是可重用的,因为表格中的每一行在视觉上都是相同的,但内容不同。您需要确保返回的表单元格包含请求的索引路径的正确数据,而不仅仅是任何行。观看视频以获取更多详细信息和示例代码。只是一个说明--最好通过编辑原始问题来添加补充信息,而不是将其作为答案发布。感谢您的评论JLEHR只是一个说明--最好通过编辑原始问题来添加补充信息,而不是将其作为答案发布。谢谢您的评论jLehrYes我必须根据我的需求实现我独特的方法,使用identifier执行出列重用cellWithIdentifier。这就解决了问题。谢谢你的评论。不客气!那么,您最终是否为每个单元使用了唯一的标识符?是的,我必须根据我的要求实现我唯一的方法,即使用标识符将可重用的CellWithIdentifier出列。这就解决了问题。谢谢你的评论。不客气!那么,您是否为每个单元格使用了唯一的标识符?