Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

launchOptions:@{

MKLaunchOptionsDirectionsModeKey:

MKLaunchOptionsDirectionsModeDriving}];

}];

Теперь, если объединить весь написанный код, он получится довольно компактным:

#import «AppDelegate.h»

#import <CoreLocation/CoreLocation.h>

#import <MapKit/MapKit.h>

@implementation AppDelegate

— (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

NSString *destination = <# Place your destination address here #>;

[[CLGeocoder new]

geocodeAddressString: destination

completionHandler: ^(NSArray *placemarks, NSError *error) {

if (error!= nil){

/* Здесь обрабатываем ошибку, например отобразив окно

с предупреждением */

return;

}

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];

request.source = [MKMapItem mapItemForCurrentLocation];

/* Преобразуем метку назначения CoreLocation в метку MapKit */

/* Получаем метку адреса назначения*/

CLPlacemark *placemark = placemarks[0];

CLLocationCoordinate2D destinationCoordinates =

placemark.location.coordinate;

MKPlacemark *destination = [[MKPlacemark alloc]

initWithCoordinate: destinationCoordinates

addressDictionary: nil];

request.destination = [[MKMapItem alloc]

initWithPlacemark: destination];

/* Мы собираемся попасть в точку назначения на автомобиле */

request.transportType = MKDirectionsTransportTypeAutomobile;

/* Получаем направления */

MKDirections *directions = [[MKDirections alloc]

initWithRequest: request];

[directions calculateDirectionsWithCompletionHandler:

^(MKDirectionsResponse *response, NSError *error) {

/* Можно вручную выполнить синтаксический разбор отклика, но здесь мы

поступим иначе и воспользуемся приложением Maps (Карты) для отображения

начальной и конечной точек. Делать такой вызов API необязательно,

так как ранее мы уже подготовили элементы карты. Но здесь вызов

делается в демонстрационных целях. Мы показываем, что в отклике

с направлениями содержится не только информация о начальной и конечной

точках */

/* Отображаем направления в приложении Maps */

[MKMapItem

openMapsWithItems:@[response.source, response.destination]

launchOptions:@{

MKLaunchOptionsDirectionsModeKey:

MKLaunchOptionsDirectionsModeDriving}];

}];

}];

self.window = [[UIWindow alloc]

initWithFrame: [[UIScreen mainScreen] bounds]];

// Точка переопределения для дополнительной настройки после запуска приложения

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

Я запущу это приложение в симуляторе iOS, так как выбранная мной конечная точка находится слишком близко от того места, где я нахожусь (начальной точки). Результат получится примерно таким, как на рис. 9.5.

Рис. 9.5. Отображение направлений на карте

См. также

Раздел 9.3.

Глава 10. Реализация распознавания жестов

10.0. Введение

Жест (Gesture) — это комбинация событий касания. Жесты применяются, например, в стандартном приложении Photo (Фото) для iOS. В этой программе пользователь может увеличивать или уменьшать фотографию, двигая двумя пальцами в разные стороны или навстречу друг другу. Некоторые образцы кода, чаще всего применяемого для обнаружения событий, связанных с жестикуляцией, инкапсулированы во встроенные классы iOS SDK, которые пригодны для многократного использования. Эти классы можно применять для обнаружения смахивания (Swipe), щипка (Pinch), панорамирования (Pan), нажатия (Tap), перетаскивания (Drag), долгого нажатия (Long Press) и вращения (Rotation).

Распознаватели жестов необходимо добавлять к экземплярам класса UIView. Один вид может быть связан с несколькими распознавателями жестов. Как только вид регистрирует жест, при необходимости он должен будет передать данный жест другим видам, расположенным ниже в иерархической цепочке.

Некоторые события, возникающие при работе приложения, могут быть сложны для обработки и требовать, чтобы одно и то же событие обнаруживалось в разных видах отдельно взятого приложения. Таким образом, возникает необходимость в распознавателях жестов, пригодных для многократного использования. В iOS SDK 5 интегрированы распознаватели шести жестов, таких как:

Поделиться:
Популярные книги

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Гранит науки. Том 3

Зот Бакалавр
3. Героями не становятся, ими умирают
Фантастика:
фэнтези
боевая фантастика
5.00
рейтинг книги
Гранит науки. Том 3

Гримуар темного лорда VI

Грехов Тимофей
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VI

Я до сих пор князь. Книга XXII

Дрейк Сириус
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII

Орден Багровой бури. Книга 1

Ермоленков Алексей
1. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 1

Правильный лекарь. Том 7

Измайлов Сергей
7. Неправильный лекарь
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Правильный лекарь. Том 7

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор