Правильная реализация
Для правильной реализации представления необходимо знать, какие данные доступны для редактирования, какие данные могут изменяться и как организовать их ввод?
Изменяться будут поля с флагом и датой/временем поимки. Поле Captured содержит логическое значение, поэтому флажок (или аналогичный элемент) подойдет лучше, чем ввод с клавиатуры. Петя будет вводить данные сразу после поимки преступника, поэтому можно запросить текущую дату и время у iOS.
Сделайте эскиз своего варианта дизайна
Внесите изменения, необходимые для включения дополнительных полей в детализированное представление.
Откройте файл FugitiveDetailViewController.xib 6 Interface Builder.
Добавьте необходимые визуальные элементы: три надписи и сегментный переключатель. Также включите имитацию панели вкладок, чтобы элементы не вышли за границы представления во время выполнения. К кнопке Save мы вернемся позже.
Включите 6 файл FugitiveDetailViewController.m (и .h) объявления свойств и код инициализации.
Теперь, когда все интерфейсные элементы существуют, создайте для них необходимую поддержку в Xcode (о связывании пока не беспокойтесь.).
Все элементы представления отображаются правильно! Остается реализовать их поведение.
Почему мы не используем обычный переключатель вместо сегментного?
Потому что не существует способа изменения текста переключателя, одобренного фирмой Apple. По умолчанию переключатель использует положения On и Off, а нам это не подходит.
Оказывается, флажок не является стандартным элементом. Конечно, это выглядит странным, потому что флажки часто встречаются в приложениях iOS.
Впрочем, флажок можно имитировать, для этого следует создать пользовательскую кнопку с тремя графическими изображениями для разных состояний (пустое, выделенное, установленный флажок) и переключаться между ними.
Элементы расположены на своих местах, теперь необходимо реализовать их поведение. Расставьте магниты в реализации метода, который будет обеспечивать работу сегментного переключателя. После этого можно будет переходить к связыванию сегментного переключателя в Interface Builder.
Включите приведенный выше код в Fugtive DetailViewController.m. Не забудьте соответствующее объявление в файле .h:
Свяжите событие Value Changed сегментного переключателя с capturedToggleChanged и captureDateLabel с пустой надписью Date & Time.
Теперь, когда сделано почти все необходимое, детализированное представление должно работать. Давайте попробуем.
- Дата: 3-01-2015, 18:37