Objective-c基于单元格文本设置单元格附件类型?iOS SDK

Objective-c基于单元格文本设置单元格附件类型?iOS SDK,objective-c,ios6,cell,textlabel,accessorytype,Objective C,Ios6,Cell,Textlabel,Accessorytype,我有一个动态表视图,其中有2个部分,每个部分中有4行由数组填充 只应检查一个单元格,目前没有一个单元格 我知道要检查的单元格的文本 所以我的问题是,我可以根据单元格包含的文本设置单元格的accessoryType吗 如果cell.textLabel.text等于此值,则设置单元格访问类型检查 任何帮助都会很好 编辑编辑编辑 考虑到下面的评论,到目前为止,我得到的代码如下: switch (indexPath.section) { case standardSection:

我有一个动态表视图,其中有2个部分,每个部分中有4行由数组填充

只应检查一个单元格,目前没有一个单元格

我知道要检查的单元格的文本

所以我的问题是,我可以根据单元格包含的文本设置单元格的accessoryType吗

如果cell.textLabel.text等于此值,则设置单元格访问类型检查

任何帮助都会很好

编辑编辑编辑 考虑到下面的评论,到目前为止,我得到的代码如下:

  switch (indexPath.section) {
        case standardSection:
            serverLoc.textLabel.text = [self.serverSelection objectAtIndex:indexPath.row];
            if ([[self.serverSelection objectAtIndex:indexPath.row] rangeOfString:cellValue].location != NSNotFound) {
                serverLoc.accessoryType = UITableViewCellAccessoryCheckmark;
            }
            break;
        case qualitySection:
            serverLoc.textLabel.text = [self.qServerSelection objectAtIndex:indexPath.row];
            if ([[self.qServerSelection objectAtIndex:indexPath.row] rangeOfString:cellValue].location != NSNotFound) {
                serverLoc.accessoryType = UITableViewCellAccessoryCheckmark;
            }
            break;
        default:
            break;
    }
各部分的设置如下:

if ([[self.myArray objectAtIndex:indexPath.row] rangeOfString:@"London,"].location != NSNotFound) {
     cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
第1节:

伊利诺伊州芝加哥 英国伦敦 加利福尼亚州圣何塞 华盛顿特区

第2节:

伊利诺伊州芝加哥(Q) 英国伦敦(Q) 加利福尼亚州圣何塞(Q) 华盛顿特区(Q)

正如你所看到的,我正在检查CellValue的值。CellValue是使用上一个视图中的委托设置的


假设这次是英国伦敦。当我进入这个视图时,伦敦,英国和伦敦,英国(Q)都被选中,我只想要没有(Q)被选中的那个。即使使用“isEqualToString”,也会出现这种情况。如果cellValue等于英国伦敦(Q),则此方法有效。

在创建单元时,应尝试设置该值(根据“模型”,而不是通过查看单元标签)


如果某些情况导致值发生更改,则应更新模型(创建每个单元格时使用的数据);然后调用
[self.tableview reloadData]

单元格中执行此操作。创建单元格后,只需检查数组中的值(假设数组包含NSString)。因此:

编辑: 根据您的注释,所有字符串都将以相同的内容开头,但可能有差异。你可以这样做:

if ([[self.myArray objectAtIndex:indexPath.row] rangeOfString:@"London,"].location != NSNotFound) {
     cell.accessoryType = UITableViewCellAccessoryCheckmark;
}

如果NSString包含“London”,则计算为YES。或者换句话说,NSString包含“London”,

我使用的是动态单元格,因此它们都具有相同的标识符,因此只有在查看完成后才能设置accessoryTypeloaded@Dave,您不希望在CellForRowatineXpath之外的任何位置设置accessoryType。您需要在
CellForRowatineXpath
中设置该值。即使可以,我也不会这样做。人们希望在CellForRowatinexPath中找到该代码。此外,理想情况下,在决定如何创建每个单元时,请始终查看您的模型;而不是在细胞的内容。我的2美分。我希望这对你有帮助。:)很抱歉耽误了您的回复!有其他的麻烦,但回到这个,是的,它的工作…在某种程度上。问题是,有些单元格类似,只是结尾字母不同。假设我有“伦敦,英国”和“伦敦,英国Q”。这两个都将被检查,因为它们都包含英国伦敦。无论如何,要使isEqualToString精确而不是包含?我更新了我的答案,看看这是否有帮助!如果是,请不要忘记接受答案!我将扩展一点:伦敦、英国、圣何塞、加利福尼亚、华盛顿和芝加哥,伊利诺伊州在一个区域中组成4个单元。第二节的内容相同,但结尾有(Q)。即使进行了更改,如果两个单元格都包含伦敦或芝加哥,那么这两个单元格都会有一个复选标记,这有意义吗?听起来不错。:)现在我有点困惑了。编辑后的答案会勾选以伦敦开头的任何内容,所以“伦敦,英国”和“伦敦,英国Q”。。。在第一个实现中,它只进行精确匹配。在你给我的片场里你想检查什么?有伦敦和芝加哥的消息吗,还是只有伦敦?在两个部分中,还是仅在第一个部分中?握住手机,它现在可以工作了。我以前在switch语句中没有它们。自从搬走它们后,我试着回到isEqualString,现在一切正常了……谢谢,我接受了!