Ios objc-如何基于时间将表格视图滚动到单元格?

Ios objc-如何基于时间将表格视图滚动到单元格?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,关于窃听手机有很多问题。这个问题是关于显示单元格的。我有一个以小时为单位的一天单元格的桌面视图 我希望tableview滚动到“现在”。这可能吗 我可以通过以下方式更改单元格的颜色: (在单元格中,按行索引路径) 首先构造两个unix时间段-一个用于现在,另一个用于即将到来的时间段。。然后,简单地说 if (time == 1) { //future time = 0; cell.nameLabel.textColor = [UIColor yellowColo

关于窃听手机有很多问题。这个问题是关于显示单元格的。我有一个以小时为单位的一天单元格的桌面视图

我希望tableview滚动到“现在”。这可能吗

我可以通过以下方式更改单元格的颜色: (在
单元格中,按行索引路径

首先构造两个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];


    }
我在看:


[ScrollToRowatineXpath:Indepath atScrollPosition:scrollPosition动画:
但我不确定我的思路是否正确,也不确定如何使用此方法。谢谢您的帮助。

您还没有显示确切的数据模型,但是假设有一个对象数组,每个对象都有一个
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;
        }
}
-(无效)滚动小时:(NSInteger)目标小时{
NSCalendar*日历=[NSCalendar currentCalendar];
for(int i=0;i=targetour){
[self.tableView ScrollToRowatineXpath:[NSIndexPath indexPathForRow:i配置:0]atScrollPosition:UITableView ScrollPosition:YES];
打破
}
}

这是您需要使用的方法,但您需要确定要滚动到的单元格的indexPath-大概您可以使用NSDATEComponentsHanks计算当前小时。我知道如何制作日期组件,但如何使用该方法?我可能必须遍历该表,直到我能够确定一个特定的时间。我不知道如何将迭代链接到scroll方法。如果你能给我举一个如何使用这个方法的例子,我会大开眼界的。你的数据模型是如何映射到你的表的?您只是拥有一个24小时数组,还是数组中有任意数量的对象,每个对象都有自己的日期字段?后者。。想一个时间表。7点有一个航班,9点有一个航班,10:30有一个航班。因此,您需要遍历数组以确定小时与目标小时匹配的第一个索引。这将是您的
indexPath.row
谢谢。这很好,除了一个问题。。。我应该从哪里调用该方法
cellforrowatinexpath
无法正确显示,因为我无法正常滚动。您希望何时进行滚动?首次显示视图时-
视图将出现
可能是一个不错的选择。数据从某个源加载完毕后-在加载数据时调用它。当用户点击按钮操作处理程序中的“现在”按钮时