Как я выбираю UITableViewCell по умолчанию?

Существует ли простой способ сделать это в Java? java.util.Date класс кажется скорее ограниченным.

Вот мое быстрое и грязное решение для Java:

import java.util.Date;
import javax.management.timer.Timer;

String getRelativeDate(Date date) {     
  long delta = new Date().getTime() - date.getTime();
  if (delta < 1L * Timer.ONE_MINUTE) {
    return toSeconds(delta) == 1 ? "one second ago" : toSeconds(delta) + " seconds ago";
  }
  if (delta < 2L * Timer.ONE_MINUTE) {
    return "a minute ago";
  }
  if (delta < 45L * Timer.ONE_MINUTE) {
    return toMinutes(delta) + " minutes ago";
  }
  if (delta < 90L * Timer.ONE_MINUTE) {
    return "an hour ago";
  }
  if (delta < 24L * Timer.ONE_HOUR) {
    return toHours(delta) + " hours ago";
  }
  if (delta < 48L * Timer.ONE_HOUR) {
    return "yesterday";
  }
  if (delta < 30L * Timer.ONE_DAY) {
    return toDays(delta) + " days ago";
  }
  if (delta < 12L * 4L * Timer.ONE_WEEK) { // a month
    long months = toMonths(delta); 
    return months <= 1 ? "one month ago" : months + " months ago";
  }
  else {
    long years = toYears(delta);
    return years <= 1 ? "one year ago" : years + " years ago";
  }
}

private long toSeconds(long date) {
  return date / 1000L;
}

private long toMinutes(long date) {
  return toSeconds(date) / 60L;
}

private long toHours(long date) {
  return toMinutes(date) / 60L;
}

private long toDays(long date) {
  return toHours(date) / 24L;
}

private long toMonths(long date) {
  return toDays(date) / 30L;
}

private long toYears(long date) {
  return toMonths(date) / 365L;
}
17
задан casillas 14 June 2015 в 03:35
поделиться

4 ответа

Используйте метод UITableViewCell

- (void)setSelected:(BOOL)selected animated:(BOOL)animated

Информация здесь .

0
ответ дан 30 November 2019 в 10:36
поделиться

Будьте осторожны, используя этот метод, так как выбор строки таким способом - это то, что Apple не рекомендует делать для отображения «выбранного» состояния.

Вместо этого рассмотрите возможность настройки. свойство accessoryType ячейки на что-то вроде UITableViewCellAccessoryCheckmark .

6
ответ дан 30 November 2019 в 10:36
поделиться

Обязательно будь осторожен. Я уверен, что у вас есть веская причина, но внимательно посмотрите на документ Apple Human Interface Guidelines. Приложения отклоняются за то, что они не отменили выбор строк таблицы. Я рекомендую вам найти соответствующий раздел HIG и узнать, какие предложения предлагает Apple.

1
ответ дан 30 November 2019 в 10:36
поделиться
-(void)viewWillAppear:(BOOL)animated {
    // assuming you had the table view wired to IBOutlet myTableView
    // and that you wanted to select the first item in the first section
    [myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] 
                             animated:NO 
                       scrollPosition:UITableViewScrollPositionTop];
}

Я использую этот метод, чтобы выбрать один из двух UITableViewCells , чтобы пользователи знали, в какой ячейке UIDatePicker под представлением таблицы он будет действовать. Этот метод используется Apple в приложении календаря, когда вы создаете новое событие и устанавливаете даты.

41
ответ дан 30 November 2019 в 10:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: