objc - 如何根据时间将tableview滚动到单元格?

时间:2015-10-13 21:25:08

标签: ios objective-c uitableview

关于敲击细胞有很多问题。这个问题是关于展示细胞。我有一小时的桌面视图,按小时计算。

我希望tableview滚动到“now”。这可能吗?

我可以这样改变单元格的颜色:  (在cellforRowAtIndexPath

首先构建两个unix时间 - 一个用于现在,另一个用于传入时间..然后,只需

if (time == 1) { //future

        time = 0;
        cell.nameLabel.textColor = [UIColor yellowColor];
        cell.detailLabel.textColor = [UIColor yellowColor];

    } else { //past
        cell.nameLabel.textColor = [UIColor redColor];
        cell.detailLabel.textColor = [UIColor redColor];


    }

我在看:

[scrollToRowAtIndexPath:indexPath atScrollPosition:scrollPosition animated:]但我不确定我是否在正确的轨道上,也不知道如何使用这种方法。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您还没有显示您的确切数据模型,但假设有一个对象数组,每个对象都具有NSDate属性,您可以使用类似

的内容
-(void) scrollToHour:(NSInteger)targetHour {
    NSCalendar *calendar = [NSCalendar currentCalendar];
    for (int i=0;i<self.dataObjects.count;i++) {
        MyObject *myObject=self.dataObjects[i];
        NSDateComponents *components = [calendar components:NSCalendarUnitHour fromDate:myObject.date];
        NSInteger hour = [components hour];
        if (hour >= targetHour) {
            [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
            break;
        }
}