iOS. Приемы программирования
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Вандад Нахавандипур. iOS. Приемы программирования
Предисловие
Для кого предназначена книга
Как построено издание
Дополнительные ресурсы
Условные сокращения, используемые в данной книге
Работа с примерами кода
Нам интересны ваши отзывы
Благодарности
От издательства
Глава 1. Реализация контроллеров и видов
1.0. Введение
Создание и запуск вашего первого приложения для iOS
Определение переменных и понятие о них
Как создавать классы и правильно пользоваться ими
Добавление нового функционала к классам с помощью методов
Соблюдение требований, предъявляемых другими классами, с помощью протоколов
Хранение элементов в коллекциях и получение элементов из коллекций
Обеспечение поддержки подписывания объектов в ваших классах
1.1. Отображение предупреждений с помощью UIAlertView
Постановка задачи
Решение
Обсуждение
См. также
1.2. Создание и использование переключателей с помощью UISwitch
Постановка задачи
Решение
Обсуждение
1.3. Оформление UISwitch
Постановка задачи
Решение
Обсуждение
См. также
1.4. Выбор значений с помощью UIPickerView
Постановка задачи
Решение
Обсуждение
См. также
1.5. Выбор даты и времени с помощью UIDatePicker
Постановка задачи
Решение
Обсуждение
1.6. Реализация инструмента для выбора временных рамок с помощью UISlider
Постановка задачи
Решение
Обсуждение
1.7. Оформление UISlider
Постановка задачи
Решение
Обсуждение
См. также
1.8. Группирование компактных параметров с помощью UISegmentedControl
Постановка задачи
Решение
Обсуждение
1.9. Представление видов и управление ими с помощью UIViewController
Постановка задачи
Решение
Обсуждение
См. также
1.10. Предоставление возможностей совместного использования информации с применением UIActivityViewController
Постановка задачи
Решение
Обсуждение
См. также
1.11. Предоставление специальных возможностей совместного использования данных с применением UIActivityViewController
Постановка задачи
Решение
Обсуждение
См. также
1.12. Внедрение навигации с помощью UINavigationController
Постановка задачи
Решение
Обсуждение
См. также
1.13. Управление массивом контроллеров видов, относящихся к навигационному контроллеру
Постановка задачи
Решение
Обсуждение
1.14. Демонстрация изображения на навигационной панели
Постановка задачи
Решение
Обсуждение
1.15. Добавление кнопок на навигационные панели с помощью UIBsrButtonItem
Постановка задачи
Решение
Обсуждение
См. также
1.16. Представление контроллеров, управляющих несколькими видами, с помощью UITabBarController
Постановка задачи
Решение
Обсуждение
1.17. Отображение статического текста с помощью UILabel
Постановка задачи
Решение
Обсуждение
1.18. Оформление UILabel
Постановка задачи
Решение
Обсуждение
См. также
1.19. Прием пользовательского текстового ввода с помощью UITextField
Постановка задачи
Решение
Обсуждение
См. также
1.20. Отображение длинных текстовых строк с помощью UITextView
Постановка задачи
Решение
Обсуждение
1.21. Добавление кнопок в пользовательский интерфейс с помощью UIButton
Постановка задачи
Решение
Обсуждение
1.22. Показ изображений с помощью UIImageView
Постановка задачи
Решение
Обсуждение
1.23. Создание прокручиваемого контента с помощью UIScrollView
Постановка задачи
Решение
Обсуждение
1.24. Загрузка веб-страниц с помощью UIWebView
Постановка задачи
Решение
Обсуждение
1.25. Отображение протекания процессов с помощью UIProgressView
Постановка задачи
Решение
Обсуждение
1.26. Создание и отображение текстов с оформлением
Постановка задачи
Решение
Обсуждение
См. также
1.27. Представление видов «Основной – детали» с помощью UISplitViewController
Постановка задачи
Решение
Обсуждение
1.28. Организация разбивки на страницы с помощью UIPageViewController
Постановка задачи
Решение
Обсуждение
1.29. Отображение вспомогательных экранов с помощью UIPopoverController
Постановка задачи
Решение
Обсуждение
См. также
Глава 2. Создание динамических и интерактивных пользовательских интерфейсов
2.0. Введение
2.1. Добавление тяготения к компонентам пользовательского интерфейса
Постановка задачи
Решение
Обсуждение
См. также
2.2. Обнаружение столкновений между компонентами пользовательского интерфейса и реагирование на них
Постановка задачи
Решение
Обсуждение
См. также
2.3. Анимирование компонентов пользовательского интерфейса с помощью толчков
Постановка задачи
Решение
Обсуждение
См. также
2.4. Прикрепление нескольких динамических элементов друг к другу
Постановка задачи
Решение
Обсуждение
См. также
2.5. Добавление эффекта динамического зацепления к компонентам пользовательского интерфейса
Постановка задачи
Решение
Обсуждение
См. также
2.6. Присваивание характеристик динамическим эффектам
Постановка задачи
Решение
Обсуждение
См. также
Глава3. Автоматическая компоновка и язык визуального форматирования
3.0. Введение
3.1. Размещение компонентов пользовательского интерфейса в центре экрана
Постановка задачи
Решение
Обсуждение
См. также
3.2. Определение горизонтальных и вертикальных ограничений на языке визуального форматирования
Постановка задачи
Решение
Обсуждение
См. также
3.3. Применение ограничений при работе с перекрестными видами
Постановка задачи
Решение
Обсуждение
См. также
3.4. Конфигурирование ограничений автоматической компоновки в конструкторе интерфейсов
Постановка задачи
Решение
Обсуждение
См. также
Глава 4. Создание и использование табличных видов
4.0. Введение
4.1. Наполнение табличного вида данными
Постановка задачи
Решение
4.2. Использование дополнительных элементов в ячейке табличного вида
Постановка задачи
Решение
Обсуждение
4.3. Создание специальных дополнительных элементов в ячейке табличного вида
Постановка задачи
Решение
Обсуждение
4.4. Обеспечение удаления смахиванием в ячейках табличных видов
Постановка задачи
Решение
Обсуждение
4.5. Создание верхних и нижних колонтитулов в табличных видах
Постановка задачи
Решение
Обсуждение
4.6. Отображение контекстных меню в ячейках табличных видов
Постановка задачи
Решение
Обсуждение
4.7. Перемещение ячеек и разделов в табличных видах
Постановка задачи
Решение
Обсуждение
4.8. Удаление ячеек и разделов в табличных видах
Постановка задачи
Решение
Обсуждение
См. также
4.9. Использование UITableViewController для удобства при создании табличных видов
Постановка задачи
Решение
Обсуждение
См. также
4.10. Отображение элемента управления, предназначенного для обновления информации в табличных видах
Постановка задачи
Решение
Обсуждение
См. также
Глава 5. Выстраивание сложных макетов с помощью сборных видов
5.0. Введение
5.1. Создание сборных видов
Постановка задачи
Решение
Обсуждение
См. также
5.2. Присваивание источника данных сборному виду
Постановка задачи
Решение
Обсуждение
См. также
5.3. Обеспечение последовательной компоновки в сборном виде
Постановка задачи
Решение
Обсуждение
См. также
5.4. Наполнение сборного вида простейшим содержимым
Постановка задачи
Решение
Обсуждение
См. также
5.5. Заполнение сборных видов специальными ячейками с помощью XIB-файлов
Постановка задачи
Решение
Обсуждение
См. также
5.6. Обработка событий в сборных видах
Постановка задачи
Решение
Обсуждение
См. также
5.7. Создание верхних и нижних колонтитулов в макете с последовательной компоновкой
Постановка задачи
Решение
Обсуждение
См. также
5.8. Добавление собственных вариантов взаимодействий к сборным видам
Постановка задачи
Решение
Обсуждение
См. также
5.9. Представление контекстных меню в ячейках сборных видов
Постановка задачи
Решение
Обсуждение
См. также
Глава 6. Раскадровки
6.0. Введение
6.1. Добавление в раскадровку навигационного контроллера
Постановка задачи
Решение
Обсуждение
См. также
6.2. Передача данных с одного экрана на другой
Постановка задачи
Решение
Обсуждение
См. также
6.3. Добавление в раскадровку контроллера с панелью вкладок
Постановка задачи
Решение
См. также
6.4. Внедрение специальных переходов между сегвеями в раскадровке
Постановка задачи
Решение
Обсуждение
См. также
6.5. Размещение изображений и других компонентов пользовательского интерфейса в раскадровках
Постановка задачи
Решение
Обсуждение
См. также
Глава 7. Параллелизм
7.0. Введение
7.1. Создание блоковых объектов
Постановка задачи
Решение
Обсуждение
7.2. Доступ к переменным в блоковых объектах
Постановка задачи
Решение
Обсуждение
7.3. Вызов блоковых объектов
Постановка задачи
Решение
Обсуждение
См. также
7.4. Решение с помощью GCD задач, связанных с пользовательским интерфейсом
Постановка задачи
Решение
Обсуждение
7.5. Синхронное решение с помощью GCD задач, не связанных с пользовательским интерфейсом
Постановка задачи
Решение
Обсуждение
См. также
7.6. Асинхронное решение с помощью GCD задач, не связанных с пользовательским интерфейсом
Постановка задачи
Решение
Обсуждение
См. также
7.7. Выполнение задач после задержки с помощью GCD
Постановка задачи
Решение
Обсуждение
См. также
7.8. Однократное выполнение задач с помощью GCD
Постановка задачи
Решение
Обсуждение
7.9. Объединение задач в группы с помощью GCD
Постановка задачи
Решение
Обсуждение
См. также
7.10. Создание собственных диспетчерских очередей с помощью GCD
Постановка задачи
Решение
Обсуждение
7.11. Синхронное выполнение задач с помощью операций
Постановка задачи
Решение
Обсуждение
См. также
7.12. Асинхронное выполнение задач с помощью операций
Постановка задачи
Решение
Обсуждение
См. также
7.13. Создание зависимости между операциями
Постановка задачи
Решение
Обсуждение
См. также
7.14. Создание таймеров
Постановка задачи
Решение
Обсуждение
7.15. Параллельное программирование с использованием потоков
Постановка задачи
Решение
Обсуждение
7.16. Активизация фоновых методов
Постановка задачи
Решение
Обсуждение
7.17. Выход из потоков и таймеров
Постановка задачи
Решение
Обсуждение
Глава 8. Безопасность
8.0. Введение
8.1. Обеспечение безопасности и защиты в приложениях
Постановка задачи
Решение
Обсуждение
См. также
8.2. Хранение значений в связке ключей
Постановка задачи
Решение
Обсуждение
См. также
8.3. Нахождение значений в связке ключей
Постановка задачи
Решение
Обсуждение
См. также
8.4. Обновление значений в связке ключей
Постановка задачи
Решение
Обсуждение
См. также
8.5. Удаление значений из связки ключей
Постановка задачи
Решение
Обсуждение
См. также
8.6. Совместное использование данных из связки ключей в нескольких приложениях
Постановка задачи
Решение
Обсуждение
См. также
8.7. Запись и считывание информации связки ключей из iCloud
Постановка задачи
Решение
Обсуждение
См. также
8.8. Безопасное хранение файлов в песочнице приложения
Постановка задачи
Решение
Обсуждение
См. также
8.9. Защита пользовательского интерфейса
Постановка задачи
Решение
Обсуждение
См. также
Глава 9. Core Location и карты
9.0. Введение
9.1. Создание картографического вида
Постановка задачи
Решение
Обсуждение
9.2. Обработка событий картографического вида
Постановка задачи
Решение
Обсуждение
См. также
9.3. Отметка местоположения устройства
Постановка задачи
Решение
Обсуждение
9.4. Отображение маркеров в картографическом виде
Постановка задачи
Решение
Обсуждение
9.5. Отображение разноцветных маркеров в картографическом виде
Постановка задачи
Решение
Обсуждение
9.6. Отображение пользовательских маркеров в картографическом виде
Постановка задачи
Решение
Обсуждение
См. также
9.7. Преобразование обычных адресов в данные широты и долготы
Постановка задачи
Решение
Обсуждение
См. также
9.8. Преобразование данных широты и долготы в обычные адреса
Постановка задачи
Решение
Обсуждение
См. также
9.9. Поиск в картографическом виде
Постановка задачи
Решение
См. также
9.10. Отображение направлений на карте
Постановка задачи
Решение
Обсуждение
См. также
Глава 10. Реализация распознавания жестов
10.0. Введение
10.1. Обнаружение жестов смахивания
Постановка задачи
Решение
Обсуждение
10.2. Обнаружение жестов вращения
Постановка задачи
Решение
Обсуждение
См. также
10.3. Обнаружение жестов панорамирования и перетаскивания
Постановка задачи
Решение
Обсуждение
10.4. Обнаружение жестов долгого нажатия
Постановка задачи
Решение
Обсуждение
10.5. Обнаружение жестов-нажатий
Постановка задачи
Решение
Обсуждение
10.6. Обнаружение щипка
Постановка задачи
Решение
Обсуждение
Глава 11. Сетевые функции, JSON, XML и Twitter
11.0. Введение
11.1. Асинхронная загрузка с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.2. Обработка задержек при асинхронных соединениях
Решение
Обсуждение
11.3. Синхронная загрузка с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.4. Изменение URL-запроса с применением NSMutableURLRequest
Постановка задачи
Решение
Обсуждение
11.5. Отправка запросов HTTP GET с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.6. Отправка запросов HTTP POST с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.7. Отправка запросов HTTP DELETE с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.8. Отправка запросов HTTP PUT с применением NSURLConnection
Постановка задачи
Решение
Обсуждение
11.9. Сериализация массивов и словарей в JSON
Постановка задачи
Решение
Обсуждение
11.10. Десериализация нотации JSON в массивы и словари
Постановка задачи
Решение
Обсуждение
См. также
11.11. Включение в приложения функций социального обмена контентом
Постановка задачи
Решение
Обсуждение
См. также
11.12. Синтаксический разбор XML с помощью NSXMLParser
Постановка задачи
Решение
Обсуждение
Глава 12. Управление файлами и каталогами
12.0. Введение
12.1. Определение пути к самым полезным каталогам на диске
Постановка задачи
Решение
Обсуждение
См. также
12.2. Запись информации в файлы и считывание информации из файлов
Постановка задачи
Решение
Обсуждение
См. также
12.3. Создание каталогов на диске
Постановка задачи
Решение
Обсуждение
См. также
12.4. Перечисление файлов и каталогов
Постановка задачи
Решение
Обсуждение
См. также
12.5. Удаление файлов и каталогов
Постановка задачи
Решение
Обсуждение
См. также
12.6. Сохранение объектов в файлах
Постановка задачи
Решение
Обсуждение
См. также
Глава 13. Камера и библиотека фотографий
13.0. Введение
13.1. Обнаружение и испытание камеры
Постановка задачи
Решение
Обсуждение
13.2. Фотографирование с помощью камеры
Постановка задачи
Решение
Обсуждение
См. также
13.3. Запись видео с помощью камеры
Постановка задачи
Решение
Обсуждение
См. также
13.4. Сохранение снимков в библиотеке фотографий
Постановка задачи
Решение
Обсуждение
13.5. Сохранение видео в библиотеке фотографий
Постановка задачи
Решение
Обсуждение
13.6. Получение фото и видео из библиотеки фотографий
Постановка задачи
Решение
Обсуждение
См. также
13.7. Получение ресурсов из библиотеки ресурсов
Постановка задачи
Решение
Обсуждение
13.8. Редактирование видео на устройстве с операционной системой iOS
Постановка задачи
Решение
Обсуждение
См. также
Глава 14. Многозадачность
14.0. Введение
14.1. Обнаружение доступности многозадачности
Постановка задачи
Решение
Обсуждение
14.2. Выполнение долгосрочной задачи в фоновом режиме
Постановка задачи
Решение
Обсуждение
См. также
14.3. Добавление возможностей фонового обновления в приложения
Постановка задачи
Решение
Обсуждение
См. также
14.4. Воспроизведение аудио в фоновом режиме
Постановка задачи
Решение
Обсуждение
14.5. Обработка геолокационных изменений в фоновом режиме
Постановка задачи
Решение
Обсуждение
14.6. Сохранение и загрузка состояния приложений iOS, использующих многозадачность
Постановка задачи
Решение
Обсуждение
См. также
14.7. Управление сетевыми соединениями в фоновом режиме
Постановка задачи
Решение
Обсуждение
См. также
14.8. Отказ от многозадачности
Постановка задачи
Решение
Обсуждение
Глава 15. Уведомления
15.0. Введение
15.1. Отправка уведомлений
Постановка задачи
Решение
Обсуждение
См. также
15.2. Слушание уведомлений и реагирование на них
Постановка задачи
Решение
Обсуждение
15.3. Слушание уведомлений, поступающих с клавиатуры, и реагирование на них
Постановка задачи
Решение
Обсуждение
См. также
15.4. Планирование локальных уведомлений
Постановка задачи
Решение
Обсуждение
См. также
15.5. Слушание локальных уведомлений и реагирование на них
Постановка задачи
Решение
Обсуждение
См. также
15.6. Обработка локальных системных уведомлений
Постановка задачи
Решение
Обсуждение
Решение
Обсуждение
15.7. Настройка приложения для получения пуш-уведомлений
Постановка задачи
Решение
Обсуждение
См. также
15.8. Доставка пуш-уведомлений в приложение
Постановка задачи
Решение
Обсуждение
См. также
15.9. Реагирование на пуш-уведомления
Постановка задачи
Решение
Обсуждение
См. также
Глава 16. Фреймворк Core Data
16.0. Введение
16.1. Создание модели Core Data с помощью Xcode
Постановка задачи
Решение
Обсуждение
16.2. Генерирование файлов классов для сущностей Core Data
Постановка задачи
Решение
Обсуждение
16.3. Создание и сохранение данных с помощью Core Data
Постановка задачи
Решение
Обсуждение
16.4. Считывание данных из Core Data
Постановка задачи
Решение
Обсуждение
См. также
16.5. Удаление данных из Core Data
Постановка задачи
Решение
Обсуждение
16.6. Сортировка данных в Core Data
Постановка задачи
Решение
Обсуждение
См. также
16.7. Оптимизация доступа к данным в табличных видах
Постановка задачи
Решение
Обсуждение
16.8. Реализация отношений в Core Data
Постановка задачи
Решение
Обсуждение
16.9. Выборка данных в фоновом режиме
Постановка задачи
Решение
Обсуждение
См. также
16.10. Использование специальных типов данных в модели Core Data
Постановка задачи
Решение
Обсуждение
См. также
Глава 17. Графика и анимация
17.0. Введение
17.1. Перечисление и загрузка шрифтов
Постановка задачи
Решение
Обсуждение
См. также
17.2. Отрисовка текста
Постановка задачи
Решение
Обсуждение
17.3. Создание, установка и использование цветов
Постановка задачи
Решение
Обсуждение
См. также
17.4. Отрисовка изображений
Постановка задачи
Решение
Обсуждение
См. также
17.5. Создание адаптивных изображений
Постановка задачи
Решение
Обсуждение
См. также
17.6. Отрисовка линий
Постановка задачи
Решение
Обсуждение
См. также
17.7. Создание путей
Постановка задачи
Решение
Обсуждение
См. также
17.8. Отрисовка прямоугольников
Постановка задачи
Решение
Обсуждение
См. также
17.9. Добавление теней к фигурам
Постановка задачи
Решение
Обсуждение
17.10. Отрисовка градиентов
Постановка задачи
Решение
Обсуждение
См. также
17.11. Перемещение фигур, нарисованных в графических контекстах
Постановка задачи
Решение
Обсуждение
См. также
17.12. Масштабирование фигур, нарисованных в графических контекстах
Постановка задачи
Решение
Обсуждение
См. также
17.13. Вращение фигур, нарисованных в графических контекстах
Постановка задачи
Решение
Обсуждение
См. также
17.14. Анимирование и перемещение видов
Постановка задачи
Решение
Обсуждение
17.15. Анимирование и масштабирование видов
Постановка задачи
Решение
Обсуждение
См. также
17.16. Анимирование и вращение видов
Постановка задачи
Решение
См. также
17.17. Получение изображения со скриншотом вида
Постановка задачи
Решение
Обсуждение
См. также
Глава 18. Фреймворк Core Motion
18.0. Введение
18.1. Обнаружение доступности акселерометра
Постановка задачи
Решение
Обсуждение
См. также
18.2. Обнаружение доступности гироскопа
Постановка задачи
Решение
Обсуждение
См. также
18.3. Получение данных акселерометра
Постановка задачи
Решение
Обсуждение
См. также
18.4. Обнаружение встряхивания устройства с iOS
Постановка задачи
Решение
Обсуждение
18.5. Получение данных гироскопа
Постановка задачи
Решение
Обсуждение
См. также
Глава 19. Фреймворк Pass Kit
19.0. Введение
19.1. Создание сертификатов Pass Kit
Постановка задачи
Решение
Обсуждение
См. также
19.2. Создание файлов талонов
Постановка задачи
Решение
Обсуждение
См. также
19.3. Подготовка пиктограмм и изображений для талонов
Постановка задачи
Решение
Обсуждение
См. также
19.4. Подготовка талонов к цифровому подписыванию
Постановка задачи
Решение
Обсуждение
См. также
19.5. Цифровое подписывание талонов
Постановка задачи
Решение
Обсуждение
См. также
19.6. Распространение талонов по электронной почте
Постановка задачи
Решение
Обсуждение
См. также
19.7. Распространение талонов с помощью веб-сервисов
Постановка задачи
Решение
Обсуждение
См. также
19.8. Настройка возможности доступа к талонам в приложениях, работающих на устройстве с операционной системой iOS
Постановка задачи
Решение
Обсуждение
См. также
19.9. Взаимодействие с Passbook с помощью программирования
Постановка задачи
Решение
Обсуждение
См. также
Отрывок из книги
Это издание книги является не просто дополненной, а полностью переработанной версией предыдущего. В iOS 7 изменилось все: внешний вид и функциональная сторона операционной системы, способы использования наших устройств с iOS и, самое главное, принципы программирования для таких устройств. Действительно, без серьезной переработки всей книги было не обойтись. Я добавил в нее примерно 50 новых разделов-рецептов, затронув в них такие вопросы, как динамика UIKit, работа с видами-коллекциями, связкой ключей, удаленными уведомлениями и пр. Кроме того, я проработал все примеры кода и иллюстрации и обновил их с учетом iOS 7.
iOS 7 – огромный шаг вперед в развитии той операционной системы, которую любим все мы, пользователи и разработчики. Нам нравится как работать с нею, так и программировать для нее. Возможно, вы заметили, какое внимание в iOS 7 уделяется динамичности системы: ваш пользовательский интерфейс должен реагировать на различные движения и перемещения, которые могут происходить с устройством. Я имею в виду следующее: Apple стремится, чтобы разработчики по-настоящему внимательно относились к деталям создаваемых приложений, обогащали их реалистичной физикой и динамикой. Именно поэтому Apple дополнила iOS SDK новым элементом – UIKit Dynamics, а в этой книге данной концепции посвящена целая глава. iPhone становится все более высокотехнологичным устройством, оставаясь при этом довольно дорогим. Соответственно, запросы его пользователей также растут. И это понятно. Пользователь только что приобрел совершенно фантастический новейший iPhone или iPad и хочет найти на нем замечательные приложения, максимально полно и эффективно задействующие все возможности этих устройств.
.....
Теперь следует инициализировать навигационный контроллер, воспользовавшись его методом initWithRootViewController:, и передать корневой контроллер нашего вида как параметр этого метода. Далее мы зададим навигационный контроллер в в качестве корневого контроллера вида в нашем окне. Здесь главное – не запутаться. UINavigationController – это фактически подкласс UIViewController, а свойство rootViewController, относящееся к нашему окну, принимает любой объект типа UIViewController. Таким образом, если мы хотим сделать навигационный контроллер корневым контроллером нашего вида, мы просто должны задать его в качестве корневого контроллера:
initWithNibName: nil
.....
Пользователь
Очень содержательно
Замечательный автор! Это не первая книга, которую мне пришлось прочесть у него! По стилю изложения – очень близко и понятно, как у Аарога Хиллеганса! Не знаю с чем это связано, но книги этого автора в России быстрей переводят на русский язык! Подойдет всем тем, кто хочет в кратчайшие сроки научиться разрабатывать программы в IDE XCode