关于敲击细胞有很多问题。这个问题是关于展示细胞。我有一小时的桌面视图,按小时计算。
我希望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:]
但我不确定我是否在正确的轨道上,也不知道如何使用这种方法。谢谢你的帮助。
答案 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;
}
}