阅读细节后如何更改文字颜色?

时间:2013-09-04 11:13:56

标签: iphone ios objective-c uitableview

正在使用iphone进行我的项目,我在uitableview(masterview)中列出了许多事件,我将在viewController(详细视图)中显示详细信息。我将tableview中的文本显示为绿色,在读取详细信息后,单元格内的数据应变为红色。将其通知为已读和未读。怎么做?请帮助我。这是我的cellforrowindexpath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"newsCell1";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
        MainNews *msglist = [samplearray objectAtIndex:indexPath.row];
        cell.textLabel.text = msglist.newsletters;
        cell.textLabel.textColor = [UIColor greenColor];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        return cell;
}

这是我的didselectatrowindexpath代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"NewsDetails"]) {
        NSIndexPath *indexPath = [tblView indexPathForSelectedRow];
        MainNewsDetailController *destViewController = segue.destinationViewController;
        MainNews *aEvent1 = [samplearray objectAtIndex:indexPath.row];
        destViewController.eveID = aEvent1.id;
        destViewController.usrid = memberid;

    }
}

所以如何在阅读细节后更改tableview中的颜色。请帮助我提前感谢

2 个答案:

答案 0 :(得分:0)

您可以在isRead模型类中使用类似MainNews的bool属性。选择特定新闻后,设置属性isRead = YES。然后在tableView:cellForRowAtIndexPath:数据源方法内检查属性以设置文本颜色。

您的代码可能如下所示

在cellForRowAtIndexPath里面

    MainNews *msglist = [samplearray objectAtIndex:indexPath.row];
    if(msglist.isRead)
        cell.textLabel.textColor = [UIColor greenColor];
    else
        cell.textLabel.textColor = [UIColor redColor];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

并在prepareForSegue内部

    MainNewsDetailController *destViewController = segue.destinationViewController;
    MainNews *aEvent1 = [samplearray objectAtIndex:indexPath.row];
    aEvent1.isRead = YES;

请注意:此答案仅检查用户是否点击了特定新闻,而不是他是否已阅读。

希望这会对你有所帮助。

答案 1 :(得分:0)

我不知道你怎么会发现用户是否阅读了文字...... 但你绝对可以改变特定细胞的颜色,如下所示。

NSIndexPath *cellIndex = [NSIndexPath indexPathForRow:3 inSection:0];
[[yourTable cellForRowAtIndexPath:cellIndex].textLabel setTextColor:[UIColor greenColor]];

希望这会对您有所帮助。