Как прокрутить просмотр таблицы в ячейку на основе времени?
Есть много вопросов о подключении к камере. Этот вопрос о показе клеток. У меня есть таблица с клетками на день, час.
Я хочу, чтобы просмотр таблицы прокрутился до "сейчас". Это возможно?
Я могу изменить цвет ячейки таким образом:
(в 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 ответ
Решение
Вы не показали точную модель данных, но предполагали, что существует массив объектов, каждый из которых имеет 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;
}
}