Движение на основе событий
Как упоминалось в прошлой статье, диспетчер движения может работать в режиме автоматического исполнения некоторого кода всякий раз, когда данные о движении мобильного устройства изменяются. Аналогичные функциональные возможности предоставляются в большинстве других классов Cocoa Touch. В частности, они позволяют связываться с делегатом, получающим сообщение в подходящий момент, но в оболочке Core Motion это делается немного иначе.
Оболочка Core Motion является относительно новой и доступна только в системе iOS 4 и более поздних версиях, поэтому компания Apple решила снабдить класс CMMotionManager возможностью использовать еще одно средство iOS 4 SDK блоки (blocks). Ранее в наших статьях блоки уже использовались несколько раз, а теперь мы рассмотрим совсем другое их применение.
Итак, создайте в среде Xcode новый проект MotionMonitor на основе шаблона View based Application. Это будет простое приложение, считывающее показания акселерометра и гироскопа, если таковые имеются, выводя их на экран.
Приложения, рассматриваемые в этой статье, не функционируют в имитаторе, поскольку в нем, к сожалению, отсутствуют средства, аналогичные акселерометру и гироскопу.
Прежде всего, оболочку Core Motion необходимо связать с рассматриваемым здесь приложением. Ведь это необязательный системный компонент, а следовательно, его придется добавить в текущий проект. О том, как новый компонент добавляется в проект, см. в разделе "Привязка каркаса Audio Toolbox", только вместо компонента AudioToolbox. framework следует выбрать компонент CoreMotion. framework. (Если в двух словах, то для этого нужно нажать клавишу Ctrl, щелкнуть на папке Frameworks и выбрать команду AddoExisting Frameworks из всплывающего контекстного меню.)
Теперь выберите заголовочный файл MotionMonitorViewController.h и внесите в него изменения.
В приведенном раньше коде предоставляется указатель для доступа к самому диспетчеру движения, а также выходы для пары меток, в которых будут отображаться данные о движении мобильного устройства. Остальная часть этого кода не требует особых пояснений, поэтому вам остается лишь сохранить внесенные изменения.
Далее откройте файл MotionMonitorViewController .xib в Interface Builder.
Откройте окно текущего представления, дважды щелкнув на пиктограмме View в главном окне nib-файла, а затем перетащите метку из библиотеки в текущее представление.
- Дата: 26-01-2015, 18:22