ios - 如何检查 TableView 单元格字幕是否彼此相等 iOS

标签 ios xcode tableview uitableview subtitle

我想知道是否有办法检查一个单元格的 detailTextLabel.text 是否等于另一个单元格的 detailTextLabel.text。

这样做的原因是如果单元格文本彼此相等,我想将 detailTextLabel.textColor 设置为相同的颜色。

例如,如果有多个单元格具有相同的副标题 - 假设我有三个单元格的副标题是比萨饼 - 我想将比萨饼的颜色设置为绿色。

我担心添加我的代码可能会使事情变得更加困惑,因为我根据用户的搜索文本从核心数据中提取副标题(因为我还坚持从数据源获取核心数据,所以发生了很多事情)。所以字幕本身在某种程度上是随机的。我的应用程序实质上允许用户根据类别搜索兴趣点。因此,如果用户搜索比萨饼, map View 将显示所有供应比萨饼的本地餐馆。然后,您可以保存该特定兴趣点,并将副标题设置为披萨(或用户搜索的任何内容)。因此,可能会有多个条目的副标题是披萨(如果用户根据“披萨”保存了多个兴趣点。)

试着忘记设置颜色的逻辑,我真的很想知道如何检查 TableView 中的字幕是否彼此相等。我应该说明我们不检查实际文本是否等于特定字符串:

不是:

if(cell.detailTextLabel.text == @"pizza"){
   cell.detailTextLabel.textColor = randomColor;
}

像这样

if(cell.detailTextLabel.text == some other detailTextLabel){
   cell.detailTextLabel.textColor = randomColor;
}

核心数据示例

self.category 是我的 NSManagedObject。在这种情况下,我已经能够将随机生成的颜色保留到核心数据中。我真正需要的是将颜色设置为与已保存到核心数据的字幕相同的逻辑。

-(void)configureCell:(CategoryTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath{
    //fetch record
    NSManagedObject *record = [self.fetchedResultsController objectAtIndexPath:indexPath];
    self.category = [self.fetchedResultsController objectAtIndexPath:indexPath];

    float red = [self.category.red floatValue];
    float green = [self.category.green floatValue];
    float blue = [self.category.blue floatValue];

    UIColor *randomRGBColor = [[UIColor alloc] initWithRed:red green:green blue:blue alpha:1.0];
    //update cell
    [cell.textLabel setText:[record valueForKey:@"name"]];
    cell.backgroundColor = randomRGBColor;

}

最佳答案

我认为你的做法是错误的。为什么要比较呈现的单元格中的字符串,而不是在它开始呈现之前。当您创建 UITableView 时,您有特定的数据源,至少是 NSString 数组(标题)。 您可以实现一个渲染方法,在该方法中循环遍历标题数组,找到等于并创建新的 NSDictionary 数组,例如,对于键 @"title" 你有你的标题和键 @"color" 你已经计算了颜色。在您的 tableView:cellForRowAtIndex 方法中,您只需从数组中获取颜色并分配给 UITableViewCell 实例,同时将文本分配给 detailTextLabel

关于ios - 如何检查 TableView 单元格字幕是否彼此相等 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31572443/

相关文章:

ios - UIDatePicker 最小日期

ios - 使用 Xcode 出现错误 "No such module",但框架在那里

java - 如何在 JavaFX 中创建一个在运行时动态添加列的 TableView?

iphone - 我如何在 iPhone 的 tableview 中的特定行显示传入消息

swift - 在 ios swift 中使用数组选择取消选择 uitableview 部分中的 radio

iphone - 如何在一段时间后触发委托(delegate)方法?

ios - 选择颜色更改 FSCalendar 中的事件颜色

ios - UIButton 不可点击

ios - 通过 XCode 安装应用程序时推送通知有效,但通过 iTunes 安装时推送通知不一致

ios - Xcode Storyboard 文档部分的用途是什么?