iOS. Приемы программирования. Вандад Нахавандипур

Читать онлайн книгу.

iOS. Приемы программирования - Вандад Нахавандипур


Скачать книгу
виду выбора даты:

      NSDate *currentDate = self.myDatePicker.date;

      NSLog(@"Date = %@", currentDate);

      Подобно классу UISwitch, вид для выбора даты также посылает своим целям инициирующие сообщения (Action Messages) всякий раз, когда отображаемая в виде дата изменяется. Чтобы иметь возможность реагировать на эти сообщения, получатель должен добавить себя в список целей вида выбора даты. Для этого используется метод addTarget: action: forControlEvents: следующим образом:

      – (void) datePickerDateChanged:(UIDatePicker *)paramDatePicker{

      if ([paramDatePicker isEqual: self.myDatePicker]){

      NSLog(@"Selected date = %@", paramDatePicker.date);

      }

      }

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.myDatePicker = [[UIDatePicker alloc] init];

      self.myDatePicker.center = self.view.center;

      [self.view addSubview: self.myDatePicker];

      [self.myDatePicker addTarget: self

      action:@selector(datePickerDateChanged:)

      forControlEvents: UIControlEventValueChanged];

      }

      Теперь всякий раз, когда пользователь изменяет дату, вы будете получать сообщение от вида выбора даты.

      Пользуясь видом для выбора даты, можно задавать минимальную и максимальную даты, которые он способен отображать. Для этого сначала нужно переключить вид выбора даты в режим UIDatePickerModeDate, а потом с помощью свойств maximumDate и minimumDate откорректировать этот диапазон:

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.myDatePicker = [[UIDatePicker alloc] init];

      self.myDatePicker.center = self.view.center;

      self.myDatePicker.datePickerMode = UIDatePickerModeDate;

      [self.view addSubview: self.myDatePicker];

      NSTimeInterval oneYearTime = 365 * 24 * 60 * 60;

      NSDate *todayDate = [NSDate date];

      NSDate *oneYearFromToday = [todayDate

      dateByAddingTimeInterval: oneYearTime];

      NSDate *twoYearsFromToday = [todayDate

      dateByAddingTimeInterval:2 * oneYearTime];

      self.myDatePicker.minimumDate = oneYearFromToday;

      self.myDatePicker.maximumDate = twoYearsFromToday;

      }

      Применяя два этих свойства, можно ограничить доступный пользователю диапазон выбора даты конкретными пределами, как показано на рис. 1.15. В приведенном образце кода мы позволяем пользователю задавать даты в диапазоне от года до двух лет, отсчитывая с настоящего момента.

      Рис. 1.15. Минимальная и максимальная даты при работе с видом выбора даты

      Если вы хотите применять вид выбора даты в качестве таймера обратного отсчета, нужно задать для этого вида режим UIDatePickerModeCountDownTimer и использовать свойство countDownDuration вида выбора даты для указания длительности обратного отсчета, задаваемой по умолчанию. Например, если вы желаете предложить пользователю такой таймер и задать в качестве периода ведения обратного отсчета 2 минуты, нужно написать следующий код:

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.view.backgroundColor = [UIColor whiteColor];

      self.myDatePicker = [[UIDatePicker alloc] init];

      self.myDatePicker.center = self.view.center;

      self.myDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;

      [self.view addSubview: self.myDatePicker];

      NSTimeInterval twoMinutes = 2 * 60;

      [self.myDatePicker setCountDownDuration: twoMinutes];

      }

      Результат показан на рис. 1.16.

      Рис. 1.16. Таймер обратного отсчета в виде для выбора даты, где стандартная длительность обратного отсчета равна 2 минутам

      1.6. Реализация инструмента для выбора временных рамок с помощью UISlider

      Постановка задачи

      Необходимо


Скачать книгу