Najlepsze przepisy dla każdego dewelopera!
iOS to jeden z najpopularniejszych systemów operacyjnych wykorzystywanych w urządzeniach mobilnych. Znajdziesz go we wszystkich sprzętach Apple - iPhone...ach, iPadach i iPodach. Różnorodność urządzeń gwarantuje Ci dużą liczbę użytkowników, ale z drugiej strony dostarcza wielu nowych wyzwań. Zastanawiasz się, jak poradzić sobie z codziennymi problemami, pojawiającymi się w trakcie tworzenia aplikacji dla iOS?
W tej książce Erica Sadun - autorka bestsellerów i guru programowania na platformie iOS - umieściła wszystkie informacje potrzebne do tego, abyś jak najszybciej zaczął tworzyć znakomite aplikacje dla urządzeń mobilnych na iOS 5. Znajdziesz tu gotowy do natychmiastowego użycia i łatwy w rozbudowie kod źródłowy, co pozwoli Ci uniknąć konieczności szukania własnych rozwiązań metodą prób i błędów. Przykłady przygotowane i przetestowane przez autorkę dotyczą praktycznie każdej dziedziny programowania na platformie iOS, od tworzenia interfejsu użytkownika, poprzez kontrolery widoku, gesty i dotknięcia, aż do obsługi sieci oraz kwestii bezpieczeństwa.
Opanowanie iOS 5 SDK, podstaw języka programowania Objective-C oraz cyklu życiowego tworzenia oprogramowania na platformie iOS
Projektowanie i dostosowanie do własnych potrzeb interfejsu użytkownika przy użyciu modułu Interface Builder i języka Objective-C
Organizowanie aplikacji za pomocą kontrolerów widoku, widoków i animacji, w tym najnowszego kontrolera widoku strony oraz własnych kontenerów
Maksymalne wykorzystanie dotknięć i gestów oraz tworzenie własnych procedur rozpoznawania gestów
Tworzenie od podstaw i używanie kontrolek
Praca z technologiami Core Image i Core Text
Implementacja w pełni wyposażonych widoków tabel, włącznie z edycją komórek, zmianą ich kolejności oraz stosowaniem własnych komórek
Tworzenie magazynów zarządzanych danych, dodawanie, usuwanie, pobieranie i wyświetlanie danych
Wyświetlanie komunikatów dla użytkownika w postaci okien dialogowych, pasków postępu, powiadomień lokalnych i typu push, okien typu Popover oraz polecenia ping
Żądanie i obsługa informacji pochodzących od użytkowników
Nawiązywanie połączenia z sieciami i usługami, obsługa uwierzytelniania oraz zarządzanie pobieraniem danych
Instalacja aplikacji w urządzeniach iOS, przekazywanie aplikacji testerom wersji beta oraz do sklepu iTunes App Store
Oto książka poświęcona programowaniu na platformie iOS, na którą czekałeś!
Erica Sadun jest autorką bestsellerów oraz współautorką licznych książek o programowaniu. Opracowała dziesiątki aplikacji na platformę iOS, oferuje usługi konsultingowe w zakresie szybkiego tworzenia prototypów aplikacji. Jej artykuły są publikowane w wielu serwisach, między innymi Ars Technica, O...Reilly i LifeHacker. Obecnie regularnie publikuje w serwisie TUAW. Uzyskała tytuł doktora nauk informatycznych na Georgia Institute of Technology.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
Tytuł oryginału: The iOS 5 Developer s Cookbook:
Core Concepts and Essential Recipes for iOS Programmers (3rd Edition)
Tłumaczenie: Robert Górczyński (wstęp, rozdz. 2 – 15), Łukasz Suma (rozdz. 1)
ISBN: 978-83-246-5121-4
Authorized translation from the English edition, entitled: THE IOS 5 DEVELOPER’S COOKBOOK: CORE
CONCEPTS AND ESSENTIAL RECIPES FOR IOS PROGRAMMERS, Third Edition; ISBN 0321832078;
by Erica Sadun; published by Pearson Education, Inc, publishing as Addison Wesley.
Copyright © 2012 by Pearson Education, Inc.
All rights reserved. No part of this book may be reproduced od transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education, Inc.
Polish language edition published by HELION S.A., Copyright © 2013.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji
w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także
kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich
niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej
odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/ios5pp.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/ios5pp
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treści
1
Podziökowania .......................................................................................... 21
O autorce .................................................................................................. 22
Wstöp ....................................................................................................... 23
Wprowadzenie do iOS SDK ......................................................................... 33
Programy twórców iOS .............................................................................................. 33
Online Developer Program ................................................................................... 33
Standard Developer Program ............................................................................... 34
Developer Enterprise Program ............................................................................. 35
Developer University Program .............................................................................. 35
Rejestracja ........................................................................................................ 35
Rozpoczöcie pracy ................................................................................................... 35
Pobieranie SDK .................................................................................................. 36
Urzñdzenia do tworzenia aplikacji ......................................................................... 37
Ograniczenia symulatora ..................................................................................... 38
Podäñczenie urzñdzenia do komputera .................................................................. 40
RóĔnice pomiödzy modelami ..................................................................................... 41
Wymiary ekranu .................................................................................................. 41
Kamera ............................................................................................................. 42
DĒwiök ............................................................................................................... 42
Telefonia ........................................................................................................... 43
RóĔnice zwiñzane z Core Location i Core Motion ................................................... 43
Obsäuga wibracji i zbliĔenia .................................................................................. 44
SzybkoĈci procesorów ......................................................................................... 44
OpenGL ES ........................................................................................................ 44
Ograniczenia platformy ............................................................................................. 45
Ograniczenia przestrzeni na dane ......................................................................... 45
Ograniczenia dostöpu do danych .......................................................................... 45
Ograniczenia pamiöci .......................................................................................... 46
Ograniczenia interakcji ........................................................................................ 50
Ograniczenia energetyczne .................................................................................. 50
Ograniczenia aplikacji ......................................................................................... 51
Ograniczenia moĔliwoĈci dziaäaþ uĔytkownika ........................................................ 52
8
iOS 5. Podröcznik programisty
Ograniczenia SDK .................................................................................................... 52
Korzystanie z serwisu Provisioning Portal ................................................................... 53
Zdefiniowanie zespoäu ........................................................................................ 54
Uzyskiwanie certyfikatów ..................................................................................... 54
Rejestrowanie urzñdzeþ ...................................................................................... 55
Rejestrowanie identyfikatorów aplikacji ................................................................. 56
Akredytacja ........................................................................................................ 57
Skäadanie projektów iPhone w caäoĈè ........................................................................ 58
Szkielet aplikacji iPhone ...................................................................................... 60
main.m .............................................................................................................. 61
Delegat aplikacji ................................................................................................. 63
Kontroler widoku ................................................................................................ 65
Uwaga na temat przykäadowego kodu prezentowanego w tej ksiñĔce ....................... 66
Komponenty aplikacji iOS ......................................................................................... 67
Hierarchia katalogów aplikacji .............................................................................. 67
Plik wykonywalny ................................................................................................ 67
Plik Info.plist ...................................................................................................... 68
Ikona i obrazy rozruchowe ................................................................................... 69
Pliki narzödzia Interface Builder ........................................................................... 72
Pliki nienaleĔñce do paczki aplikacji ..................................................................... 72
Archiwa IPA ........................................................................................................ 73
Piaskownice ....................................................................................................... 74
Paradygmaty programowania .................................................................................... 74
Programowanie zorientowane obiektowo ............................................................... 75
Model-widok-kontroler ......................................................................................... 75
Podsumowanie ........................................................................................................ 83
Obóz treningowy Objective-C ..................................................................... 85
Jözyk programowania Objective-C .............................................................................. 85
Klasy i obiekty ......................................................................................................... 86
Tworzenie obiektów ............................................................................................ 88
Alokacja pamiöci ................................................................................................ 88
Zwalnianie pamiöci ............................................................................................. 89
Licznik uĔycia obiektu ......................................................................................... 90
Metody, wiadomoĈci i selektory ................................................................................ 90
Niezadeklarowane metody ................................................................................... 91
WskaĒnik do obiektu ........................................................................................... 92
Dziedziczenie metod ........................................................................................... 93
Deklarowanie metod ........................................................................................... 93
Implementacja metody ........................................................................................ 93
Metody klasy ...................................................................................................... 95
Szybkie wyliczenie .............................................................................................. 96
Hierarchia klas ........................................................................................................ 97
WyĈwietlanie informacji ............................................................................................ 98
Podstawy zarzñdzania pamiöciñ .............................................................................. 100
Zarzñdzanie pamiöciñ poprzez MRR ................................................................... 100
Zarzñdzanie pamiöciñ za pomocñ technologii ARC ............................................... 103
2
Spis treĈci
9
WäaĈciwoĈci .......................................................................................................... 104
Hermetyzacja ................................................................................................... 105
Zapis z uĔyciem kropki ...................................................................................... 105
WäaĈciwoĈci i zarzñdzanie pamiöciñ ................................................................... 105
Deklaracja wäaĈciwoĈci ..................................................................................... 106
Tworzenie wäasnych metod typu getter i setter .................................................... 108
Kwalifikatory wäaĈciwoĈci .................................................................................. 110
Funkcja KVC ..................................................................................................... 111
Funkcja KVO ..................................................................................................... 112
Technologia MRR i duĔa wartoĈè licznika uĔycia .................................................. 112
Inne sposoby tworzenia obiektów ....................................................................... 113
Usuwanie obiektu z pamiöci .............................................................................. 114
UĔywanie bloków .................................................................................................... 117
Definiowanie bloku w kodzie .............................................................................. 118
Przypisywanie odniesieþ do bloku ...................................................................... 119
Blok i zmienne lokalne ...................................................................................... 120
Blok i typedef ................................................................................................... 120
Bloki i zarzñdzanie pamiöciñ w technologii MRR .................................................. 121
Inne uĔycie bloków ............................................................................................ 121
Technologia ARC .................................................................................................... 121
Kwalifikatory wäaĈciwoĈci i zmiennych ................................................................ 122
Licznik odniesieþ .............................................................................................. 125
Pula zwalniana automatycznie ........................................................................... 127
Stosowanie technologii ARC — za i przeciw ............................................................. 128
Migracja do ARC ............................................................................................... 128
Wyäñczenie ARC w projekcie .............................................................................. 129
Wyäñczenie ARC dla poszczególnych plików ......................................................... 130
Utworzenie projektu niezgodnego z ARC na bazie szablonu w Xcode ..................... 130
Reguäy dotyczñce ARC ............................................................................................ 131
UĔycie technologii ARC wraz z Core Foundation i rzutowaniem typów danych ............... 132
Rzutowanie pomiödzy Objective-C i Core Foundation ............................................ 132
Wybór odpowiedniego podejĈcia ........................................................................ 134
Rozwiñzania stosowane w trakcie dziaäania aplikacji ............................................ 134
Wskazówki i podpowiedzi dotyczñce pracy z ARC ................................................. 135
Wzorzec Singleton .................................................................................................. 136
Kategorie (rozszerzenia klas) .................................................................................. 137
Protokoäy ............................................................................................................... 138
Definiowanie protokoäu ..................................................................................... 138
Stosowanie protokoäu ....................................................................................... 139
Dodanie wywoäaþ zwrotnych .............................................................................. 139
Deklaracja opcjonalnych wywoäaþ zwrotnych ........................................................ 140
Implementacja opcjonalnych wywoäaþ zwrotnych ................................................. 140
ZgodnoĈè z protokoäem ..................................................................................... 141
Klasy Foundation ................................................................................................... 142
Ciñgi tekstowe ................................................................................................. 142
Liczby i daty ..................................................................................................... 147
Kolekcje .......................................................................................................... 149
10
iOS 5. Podröcznik programisty
3
I jeszcze jedno: przekazywanie wiadomoĈci .............................................................. 154
Implementacja przekazywania wiadomoĈci .......................................................... 155
Operacje czyszczñce ......................................................................................... 156
Superäatwe przekazywanie ................................................................................. 157
Podsumowanie ...................................................................................................... 157
Budowanie pierwszego projektu ............................................................... 159
Utworzenie nowego projektu ................................................................................... 159
Utworzenie aplikacji na podstawie szablonu ............................................................. 161
Utworzenie nowego projektu .............................................................................. 161
Wprowadzenie do przestrzeni roboczej Xcode ...................................................... 164
Przeglñd projektu .............................................................................................. 169
Otwórz plik Storyboard dla iPhone’a ................................................................... 170
Edycja widoku .................................................................................................. 171
Uruchomienie aplikacji ...................................................................................... 173
UĔywanie symulatora .............................................................................................. 174
Symulator — co siö dzieje w tle? ....................................................................... 175
Wspóädzielenie aplikacji symulatora ................................................................... 177
Minimalistyczna wersja aplikacji typu Witaj, Ĉwiecie .................................................. 178
Przeglñdanie API SDK ....................................................................................... 180
Konwersja plików moduäu Interface Builder na ich odpowiedniki w Objective-C ............ 181
UĔywanie moduäu usuwania bäödów ......................................................................... 183
Ustawienie punktu kontrolnego .......................................................................... 184
WyĈwietlenie panelu moduäu usuwania bäödów ................................................... 185
Analiza etykiety ................................................................................................ 186
Ustawienie innego punktu kontrolnego ............................................................... 187
ćledzenie wsteczne .......................................................................................... 188
Konsola ........................................................................................................... 188
Dodanie prostego Ĉledzenia .............................................................................. 188
Zarzñdzanie pamiöciñ ............................................................................................. 189
Sposób: uĔycie narzödzia Instruments do wykrywania wycieków pamiöci .................... 190
Sposób: uĔycie narzödzia Instruments do monitorowania alokacji
buforowanych obiektów ........................................................................................ 192
Symulacja sytuacji, gdy w systemie pozostaäo niewiele wolnej pamiöci .................. 193
Analiza kodu .......................................................................................................... 195
Od Xcode do urzñdzenia — interfejs okna Organizer ............................................ 196
Urzñdzenia ....................................................................................................... 197
Informacje ogólne ............................................................................................. 197
Profile akredytacyjne ......................................................................................... 197
Dzienniki zdarzeþ w urzñdzeniu .......................................................................... 197
Aplikacje .......................................................................................................... 199
Konsola ........................................................................................................... 199
Zrzuty ekranu ................................................................................................... 199
Kompilacja dla urzñdzenia iOS ................................................................................ 200
UĔywanie profilu akredytacyjnego programisty ..................................................... 200
Dodanie urzñdzenia, w którym moĔna uruchamiaè tworzone aplikacje ................... 201
Przeanalizuj identyfikator aplikacji ...................................................................... 201
Ustawienie urzñdzenia i toĔsamoĈci podpisywania kodu ...................................... 202
Spis treĈci
11
4
OkreĈlenie bazowej wersji SDK dla aplikacji ........................................................ 203
Kompilacja i uruchomienie aplikacji Hello World .................................................. 204
Podpisywanie skompilowanych aplikacji .............................................................. 205
Wykrywanie platformy docelowej podczas kompilacji ................................................. 205
Sprawdzanie zgodnoĈci podczas dziaäania aplikacji ................................................... 205
Znaczniki pragma mark .......................................................................................... 207
Ukrywanie treĈci metod ..................................................................................... 208
Przygotowanie do dystrybucji ................................................................................... 208
Odszukanie i oczyszczenie aplikacji .................................................................... 208
UĔywanie schematów i akcji .............................................................................. 209
Dodanie wäasnej konfiguracji kompilacji aplikacji ................................................. 210
Informacje dotyczñce dystrybucji tymczasowej ..................................................... 211
Tworzenie pakietu w konfiguracji tymczasowej ..................................................... 212
Dystrybucja tymczasowa OTA .................................................................................. 213
Utworzenie pliku manifestu ............................................................................... 213
Zgäoszenie aplikacji do iTunes App Store ................................................................. 215
Podsumowanie ...................................................................................................... 217
Projektowanie interfejsu uĔytkownika ...................................................... 219
Klasy UIView i UIWindow ......................................................................................... 219
Widoki wyĈwietlajñce dane ................................................................................ 220
Widok przeznaczony do dokonania wyboru .......................................................... 221
Kontrolki .......................................................................................................... 222
Tabele i kontrolki typu Picker ............................................................................. 223
Paski ............................................................................................................... 223
Pasek postöpu i wskaĒnik wykonywania operacji ................................................. 224
Kontroler widoku .................................................................................................... 224
Klasa UIViewController ...................................................................................... 225
Klasa UINavigationController ............................................................................. 225
Klasa UITabBarController .................................................................................. 226
Kontroler widoku podzielonego .......................................................................... 226
Kontroler widoku strony .................................................................................... 227
Kontroler typu Popover ...................................................................................... 227
Kontroler widoku tabeli ..................................................................................... 227
Kontroler ksiñĔki adresowej ............................................................................... 228
Klasa UIImagePicker ......................................................................................... 228
Tworzenie wiadomoĈci e-mail ............................................................................. 228
Klasa UIDocumentInteractionController .............................................................. 229
Klasa GKPeerPickerController ............................................................................ 229
Kontrolery odtwarzania treĈci multimedialnej ...................................................... 229
Geometria widoku .................................................................................................. 229
Pasek stanu ..................................................................................................... 230
Paski nawigacyjny, narzödziowy i kart ................................................................. 231
Klawiatura i kontrolki Picker .............................................................................. 233
Pole tekstowe .................................................................................................. 233
Klasa UIScreen ................................................................................................ 234
Tworzenie interfejsu ............................................................................................... 235
12
iOS 5. Podröcznik programisty
UĔycie funkcji Storyboard do utworzenia interfejsu uĔytkownika .................................. 235
Utworzenie nowego projektu .............................................................................. 236
Dodanie kolejnych kontrolerów widoku ............................................................... 236
Organizacja widoków ......................................................................................... 237
Uaktualnienie klas ............................................................................................ 238
Nazwy scen ...................................................................................................... 238
Edycja atrybutów widoku ................................................................................... 239
Dodanie przycisków nawigacyjnych ..................................................................... 239
Dodanie kolejnego kontrolera nawigacyjnego ...................................................... 241
Nadawanie nazw kontrolerom ............................................................................ 241
Pokolorowanie pasków nawigacyjnych ................................................................ 241
Dodanie przycisku ............................................................................................ 242
Zmiana poczñtkowo wyĈwietlanego kontrolera .................................................... 242
Dodanie kodu usuwajñcego widok z ekranu ........................................................ 242
Uruchomienie aplikacji ...................................................................................... 243
UĔycie okien typu Popover ...................................................................................... 243
Dodanie kontrolera nawigacyjnego ..................................................................... 244
Zmiana klasy kontrolera widoku ......................................................................... 244
Dostosowanie do wäasnych potrzeb widoku okna Popover .................................... 245
Utworzenie poäñczeþ ......................................................................................... 245
Edycja kodu ..................................................................................................... 245
UĔycie moduäu Interface Builder do utworzenia konwertera temperatur ....................... 247
Utworzenie nowego projektu .............................................................................. 247
Dodanie plików ................................................................................................. 247
Interface Builder ............................................................................................... 248
Dodanie etykiet i widoków ................................................................................. 249
Wäñczenie zmiany orientacji ............................................................................... 249
Test interfejsu .................................................................................................. 249
Dodanie outletów i akcji .................................................................................... 249
Dodanie metody konwersji ................................................................................ 251
Uaktualnienie rodzaju klawiatury ........................................................................ 251
Poäñczenie interfejsu iPada ............................................................................... 252
Röczna budowa interfejsu aplikacji konwertera ......................................................... 253
Poäñczenie wszystkiego razem ........................................................................... 255
Tworzenie, wczytywanie i uĔywanie interfejsów hybrydowych ...................................... 256
Utworzenie nowego pliku .xib przeznaczonego na interfejs uĔytkownika ................. 256
Dodanie widoku i wypeänienie go treĈciñ ............................................................. 257
Nadanie wartoĈci tag widokom .......................................................................... 257
Edycja kodu ..................................................................................................... 257
Projektowanie w celu zapewnienia obrotu interfejsu .................................................. 258
Wäñczenie zmiany ukäadu ........................................................................................ 258
Automatyczna zmiana wielkoĈci .............................................................................. 261
Przykäad automatycznej zmiany wielkoĈci ............................................................ 262
Omówienie opcji automatycznej zmiany wielkoĈci ................................................ 264
Przenoszenie widoków ............................................................................................ 264
Sposób: przenoszenie widoków poprzez naĈladowanie szablonów .............................. 265
I jeszcze jedno: kilka doskonaäych podpowiedzi dotyczñcych moduäu Interface Builder .... 268
Podsumowanie ...................................................................................................... 270
5
6
Spis treĈci
13
Praca z kontrolerem widoku .................................................................... 271
Praca z kontrolerem nawigacyjnym i widokiem podzielonym ....................................... 271
UĔywanie stosów i kontrolerów nawigacyjnych ..................................................... 273
Umieszczanie i usuwanie kontrolera ze stosu ..................................................... 273
Klasa elementu nawigacyjnego .......................................................................... 274
Kontroler modalny ............................................................................................ 275
Sposób: budowa prostego menu skäadajñcego siö z dwóch elementów ...................... 275
Sposób: dodanie kontrolki segmentowanej .............................................................. 277
Sposób: nawigacja pomiödzy kontrolerami widoków .................................................. 279
Sposób: wyĈwietlenie wäasnego widoku modalnego zawierajñcego informacje ............. 281
Sposób: kontroler widoku strony ............................................................................. 285
WäaĈciwoĈci ksiñĔki .......................................................................................... 285
Opakowanie implementacji ................................................................................ 286
Omówienie kodu sposobu ................................................................................. 290
Sposób: przewijanie stron w kontrolerze widoku strony ............................................. 291
Sposób: pasek kart ................................................................................................ 292
Sposób: zapamiötanie stanu paska kart .................................................................. 295
Sposób: utworzenie kontrolera widoku podzielonego ................................................. 298
Sposób: utworzenie aplikacji uniwersalnej uĔywajñcej widoku podzielonego ................ 302
Sposób: wäasny pojemnik i przejĈcie segue .............................................................. 304
PrzejĈcia pomiödzy kontrolerami widoków ........................................................... 308
I jeszcze jedno: moduä Interface Builder i kontroler paska kart ................................... 309
Podsumowanie ...................................................................................................... 310
Tworzenie widoków i animacji .................................................................. 313
Hierarchia widoku .................................................................................................. 313
Sposób: odkrywanie drzewa hierarchii widoku .......................................................... 315
Sposób: wykonywanie zapytaþ do podwidoków ......................................................... 315
Zarzñdzanie podwidokami ....................................................................................... 317
Dodanie podwidoku .......................................................................................... 317
Zmiana kolejnoĈci i usuwanie podwidoków ......................................................... 318
Wywoäania zwrotne widoku ................................................................................ 318
Sposób: oznaczanie widoków wartoĈciami tag oraz pobieranie widoków ..................... 319
UĔywanie wartoĈci tag do wyszukiwania widoków ................................................ 319
Sposób: nadawanie nazw widokom ......................................................................... 321
Obiekty powiñzane ............................................................................................ 321
UĔycie säownika nazw ........................................................................................ 323
Geometria widoku .................................................................................................. 326
Ramka ............................................................................................................. 326
Przeksztaäcenia ................................................................................................ 327
Systemy wspóärzödnych .................................................................................... 328
Sposób: praca z ramkñ widoku ............................................................................... 328
Dostosowanie wielkoĈci .................................................................................... 329
Struktura CGRect i punkt Ĉrodkowy .................................................................... 330
Inne metody narzödziowe .................................................................................. 331
Sposób: losowe przeniesienie widoku ...................................................................... 334
Sposób: przeksztaäcenie widoku ............................................................................. 336
WyĈwietlacz i cechy interakcji ................................................................................. 337
14
iOS 5. Podröcznik programisty
7
Animacje obiektu UIView ........................................................................................ 338
Transakcyjne tworzenie animacji UIView ............................................................. 338
Tworzenie animacji za pomocñ bloku .................................................................. 340
Animacja warunkowa ........................................................................................ 340
Sposób: pojawianie siö i znikanie widoku ................................................................. 341
Sposób: zamiana widoków ...................................................................................... 342
Sposób: obrót widoku ............................................................................................ 343
Sposób: uĔywanie przejĈè Core Animation ................................................................ 343
Sposób: efekt odbicia pojawiajñcego siö widoku ...................................................... 345
Sposób: animacja widoku obrazu ............................................................................ 346
I jeszcze jedno: dodanie odbicia do widoku .............................................................. 347
Podsumowanie ...................................................................................................... 349
Praca z obrazami ..................................................................................... 351
Wyszukiwanie i wczytywanie obrazów ....................................................................... 351
Odczyt danych obrazu ....................................................................................... 353
Sposób: uzyskanie dostöpu do zdjöè z albumu zdjöè ................................................. 356
Praca z klasñ UIImagePickerController ................................................................ 358
Pobranie informacji z edycji obrazu ..................................................................... 360
Sposób: pobieranie obrazu z adresu URL zasobu ..................................................... 360
Sposób: pstrykanie zdjöè i ich zapis w albumie zdjöè ................................................ 362
Wybór pomiödzy aparatami ................................................................................ 365
Zapis obrazów w katalogu Documents ..................................................................... 366
Sposób: wysyäanie obrazów za pomocñ wiadomoĈci e-mail ........................................ 367
Utworzenie treĈci wiadomoĈci ............................................................................ 368
WyĈwietlenie kontrolera tworzenia wiadomoĈci ................................................... 369
Automatyzacja wykonywania zdjöè ........................................................................... 370
UĔywanie wäasnych nakäadek na podglñdzie aparatu ................................................. 370
Sposób: uzyskanie dostöpu do aparatu z poziomu AVFoundation ............................... 371
Aparat jest wymagany ....................................................................................... 372
Sprawdzanie dostöpnoĈci i rodzaju aparatu ........................................................ 372
Utworzenie sesji aparatu ................................................................................... 373
Przeäñczanie pomiödzy aparatami ...................................................................... 375
Podglñd dostarczany przez aparat ...................................................................... 375
UäoĔenie podglñdu z aparatu ............................................................................. 376
EXIF ................................................................................................................. 376
Geometria obrazu ............................................................................................. 377
Tworzenie klasy pomocniczej do obsäugi aparatu ................................................. 379
Sposób: dodanie filtru Core Image .......................................................................... 379
Sposób: wykrywanie twarzy za pomocñ Core Image ................................................... 381
Wyodröbnianie twarzy ............................................................................................. 386
Sposób: praca z obrazami rastrowymi ...................................................................... 387
Rysowanie w kontekĈcie rastrowym ................................................................... 388
Przetwarzanie obrazu ........................................................................................ 390
RzeczywistoĈè dotyczñca przetwarzania obrazów ................................................. 391
Sposób: pobieranie próbek na Ĕywo ........................................................................ 392
Konwersja na HSB ............................................................................................ 394
Spis treĈci
15
8
Sposób: utworzenie miniatur z obrazów ................................................................... 395
Wykonywanie zrzutu ekranu widoku ......................................................................... 397
Rysowanie w plikach PDF ....................................................................................... 398
Tworzenie nowego obrazu zupeänie od poczñtku ....................................................... 399
Sposób: wyĈwietlenie obrazu w przewijanym widoku ................................................. 400
Tworzenie przewijanej strony zawierajñcej wiele obrazów ...................................... 402
Podsumowanie ...................................................................................................... 402
Gesty i dotkniöcia ................................................................................... 405
Dotkniöcia ............................................................................................................. 405
Fazy ................................................................................................................ 406
Dotkniöcia i metody ich obsäugi ......................................................................... 407
Dotykane widoki ............................................................................................... 407
Obsäuga wielu dotkniöè ..................................................................................... 408
Procedury rozpoznawania gestów ....................................................................... 408
Sposób: dodanie prostej moĔliwoĈci bezpoĈredniej manipulacji interfejsem ................ 409
Sposób: dodanie procedury rozpoznawania gestu przesuniöcia .................................. 410
Sposób: jednoczesne uĔywanie wielu procedur rozpoznawania gestów ....................... 412
Usuwanie konfliktów pomiödzy procedurami rozpoznawania gestów ...................... 414
Sposób: ograniczenie ruchu .................................................................................... 415
Sposób: testowanie miejsca dotkniöcia ................................................................... 417
Sposób: testowanie grafiki rastrowej ....................................................................... 418
Sposób: zapewnienie trwaäoĈci podczas bezpoĈredniej manipulacji interfejsem .......... 420
Przechowywanie informacji o stanie ................................................................... 421
Przywracanie informacji o stanie ........................................................................ 422
Sposób: zapewnienie trwaäoĈci poprzez archiwizacjö ................................................. 423
Sposób: dodanie obsäugi opcji cofnij ....................................................................... 425
Utworzenie menedĔera opcji cofnij ..................................................................... 425
Obsäuga operacji cofniöcia dla widoku potomnego ............................................... 426
Praca z paskiem nawigacyjnym .......................................................................... 426
Rejestracja operacji cofniöcia ............................................................................ 427
Dodanie obsäugi operacji cofniöcia poprzez potrzñĈniöcie urzñdzeniem ................. 429
Dodanie nazwy akcji dla operacji cofniöcia i powtórzenia (krok opcjonalny) ............ 430
Zapewnienie obsäugi edycji poprzez potrzñĈniöcie ................................................ 430
Wymuszenie statusu First Responder ................................................................. 430
Sposób: rysowanie w miejscu dotkniöcia ekranu ...................................................... 431
Sposób: päynne rysowanie ...................................................................................... 432
Sposób: wykrywanie okrögów .................................................................................. 435
Utworzenie wäasnej procedury rozpoznawania gestów .......................................... 439
Sposób: uĔywanie wielu dotkniöè ............................................................................ 441
Przytrzymanie ĈcieĔek dotkniöè ............................................................................... 443
I jeszcze jedno: przeciñganie z widoku przewijanego ................................................. 444
Podsumowanie ...................................................................................................... 448
9
Tworzenie i uĔywanie kontrolek ................................................................ 449
Klasa UIControl ..................................................................................................... 449
Rodzaje kontrolek ............................................................................................. 449
Zdarzenia kontrolek .......................................................................................... 450
16
iOS 5. Podröcznik programisty
Przyciski ................................................................................................................ 452
Dodawanie przycisków w module Interface Builder .................................................... 453
Grafika ............................................................................................................ 454
ãñczenie przycisków z akcjami ........................................................................... 455
Przyciski, które nie sñ przyciskami ..................................................................... 455
Tworzenie wäasnych przycisków w Xcode .................................................................. 456
Tekst przycisku wyĈwietlany w wielu wierszach ......................................................... 458
Umieszczenie w przycisku animowanych elementów ................................................. 459
Sposób: animacja reakcji przycisku ......................................................................... 459
Sposób: dodanie suwaka wraz z wäasnñ gaäkñ .......................................................... 461
Dostosowanie egzemplarza UISlider do wäasnych potrzeb .................................... 461
Poprawa skutecznoĈci ....................................................................................... 465
Proxy wyglñdu ................................................................................................... 465
Sposób: tworzenie kontrolki segmentowanej umoĔliwiajñcej odpowiedĒ
na drugie stukniöcie ............................................................................................ 466
Sposób: utworzenie podklasy klasy UIControl ........................................................... 468
Utworzenie egzemplarza UIControl ..................................................................... 470
ćledzenie dotkniöè ........................................................................................... 470
Przekazywanie zdarzeþ ...................................................................................... 471
Praca z przeäñcznikami i stepperami ........................................................................ 471
Sposób: utworzenie suwaka z gwiazdkami ............................................................... 472
Sposób: budowa tarczy dotykowej ........................................................................... 476
Dodanie kontrolki wskaĒnika strony ......................................................................... 478
Sposób: utworzenie wäasnego rozwiñzania przeznaczonego do przewijania stron ......... 480
Utworzenie paska narzödziowego ............................................................................ 484
Utworzenie paska narzödziowego w kodzie ......................................................... 485
Podpowiedzi dotyczñce paska narzödziowego w iOS 5 ......................................... 487
Podsumowanie ...................................................................................................... 487
Praca z tekstem ...................................................................................... 489
Sposób: ukrycie klawiatury po zakoþczeniu edycji tekstu w kontrolce UITextField ........ 489
WäaĈciwoĈci dotyczñce cech tekstu .................................................................... 491
Inne wäaĈciwoĈci dotyczñce pól tekstowych ........................................................ 492
Sposób: dostosowanie widoków wokóä klawiatur ...................................................... 493
Sposób: przykrycie widoku tekstu wäasnym widokiem pomocniczym ........................... 495
Sposób: zmiana wielkoĈci widoku po podäñczeniu klawiatury sprzötowej ..................... 497
Sposób: utworzenie wäasnego widoku wprowadzania danych ..................................... 500
Sposób: widoki potrafiñce obsäuĔyè dane wejĈciowe w postaci tekstu ........................ 504
Sposób: dodanie wäasnego widoku danych wejĈciowych do widoku nietekstowego ...... 507
Dodanie dĒwiöku klikniöcia ................................................................................ 509
Sposób: zbudowanie lepszego edytora tekstów ........................................................ 509
Sposób: filtrowanie tekstu ...................................................................................... 511
Sposób: wykrywanie wzorców tekstu ........................................................................ 513
Tworzenie wäasnych wyraĔeþ .............................................................................. 514
Enumeracja wyraĔenia regularnego ..................................................................... 516
Wykrywanie danych ........................................................................................... 516
Dodanie wbudowanego detektora danych ........................................................... 517
10
Spis treĈci
17
11
Sposób: wykrywanie bäödów w UITextView ................................................................ 517
Wyszukiwanie ciñgów tekstowych ....................................................................... 518
Sposób: wyĈwietlenie dostöpnych czcionek .............................................................. 519
Sposób: dodanie wäasnych czcionek do aplikacji ...................................................... 520
Sposób: podstawy pracy z Core Text i ciñgami tekstowymi z atrybutami ...................... 521
UĔycie pseudo-HTML do utworzenia tekstu z atrybutami ............................................ 526
Sposób: podziaä na strony w Core Text .................................................................... 531
Sposób: generowanie tekstu do dokumentu PDF ...................................................... 532
Sposób: wyĈwietlanie tekstu w nieregularnych ksztaätach .......................................... 533
Sposób: wyĈwietlanie tekstu na ĈcieĔce .................................................................. 536
WyĈwietlanie tekstu na ĈcieĔkach Béziera .......................................................... 541
WyĈwietlanie proporcjonalne ............................................................................. 541
WyĈwietlanie liter ............................................................................................. 542
I jeszcze jedno: duĔy tekst na ekranie iPhone’a ........................................................ 543
Podsumowanie ...................................................................................................... 546
Tworzenie widoków tabel i zarzñdzanie nimi ............................................. 547
Wprowadzenie do klas UITableView i UITableViewController ....................................... 547
Utworzenie tabeli .............................................................................................. 548
Sposób: implementacja prostej tabeli ...................................................................... 550
Wypeänienie tabeli ............................................................................................ 550
Metody Ēródäa danych ....................................................................................... 551
Ponowne uĔycie komórek .................................................................................. 552
Udzielanie odpowiedzi na dziaäania uĔytkownika .................................................. 552
Kolor zaznaczonej komórki ................................................................................ 552
Zmiana koloru täa tabeli .................................................................................... 553
Typy komórek ................................................................................................... 553
Sposób: utworzenie wäasnej komórki w module Interface Builder ............................... 554
Dodanie wäasnych atrybutów zaznaczonej komórki ............................................... 556
Zdefiniowanie naprzemiennych kolorów komórek ................................................. 556
Usuniöcie efektu zaznaczenia komórki ............................................................... 557
Tworzenie tabel zgrupowanych ........................................................................... 557
Sposób: zapamiötanie stanu kontrolki we wäasnej komórce ....................................... 558
Wizualizacja ponownego wykorzystania komórki .................................................. 560
Utworzenie „wybranej” komórki tabeli ................................................................. 561
Praca z przyciskiem typu disclosure ................................................................... 562
Sposób: edycja tabeli ............................................................................................. 564
WyĈwietlanie kontrolek usuwania komórek ......................................................... 567
Usuniöcie z ekranu kontrolek usuwania komórek ................................................ 567
Obsäuga Ĕñdaþ usuniöcia komórek ..................................................................... 567
Obsäuga funkcji cofniöcia operacji ...................................................................... 567
Gest machniöcia w komórce .............................................................................. 568
Dodawanie komórek ......................................................................................... 568
Zmiana kolejnoĈci komórek ............................................................................... 568
Algorytmiczne sortowanie tabeli ......................................................................... 569
Sposób: praca z sekcjami ....................................................................................... 570
Tworzenie sekcji ............................................................................................... 571
Zliczanie sekcji i rekordów ................................................................................. 572
18
iOS 5. Podröcznik programisty
Zwrot komórek ................................................................................................. 572
Utworzenie nagäówka sekcji ............................................................................... 573
Utworzenie indeksu sekcji ................................................................................. 573
Mechanizm delegacji w sekcjach ....................................................................... 574
Sposób: wyszukiwanie w tabeli ............................................................................... 575
Utworzenie kontrolera opcji wyszukiwania ........................................................... 575
Utworzenie metod Ēródäa danych ........................................................................ 576
Metody delegata ............................................................................................... 578
UĔywanie indeksu wyszukiwania ......................................................................... 578
Dostosowanie nagäówka i stopki do wäasnych potrzeb ......................................... 579
Sposób: dodanie do tabeli opcji „pociñgnij, aby odĈwieĔyè” ....................................... 581
Utworzenie w kodzie wäasnej tabeli zgrupowanej ....................................................... 583
Utworzenie zgrupowanej tabeli ustawieþ ............................................................. 583
Sposób: utworzenie tabeli zawierajñcej wiele tarcz ................................................... 585
Utworzenie egzemplarza UIPickerView ................................................................ 586
Sposób: uĔycie kontrolki UIPickerView z widokami .................................................... 588
Sposób: uĔycie egzemplarza UIDatePicker ............................................................... 590
Utworzenie egzemplarza UIDatePicker ................................................................ 592
I jeszcze jedno: formatowanie daty .......................................................................... 592
Podsumowanie ...................................................................................................... 595
12 Rozpoczöcie pracy z Core Data ................................................................ 597
Wprowadzenie do Core Data ................................................................................... 597
Utworzenie i edycja plików modelu ..................................................................... 598
Generowanie plików klasy ................................................................................. 600
Utworzenie kontekstu Core Data ........................................................................ 600
Dodawanie obiektów ......................................................................................... 601
Wykonywanie zapytaþ do bazy danych ................................................................ 603
Wykrywanie zmian ............................................................................................ 604
Usuwanie obiektów ........................................................................................... 604
Sposób: uĔycie Core Data jako Ēródäa danych tabeli .................................................. 605
Sposób: wyszukiwanie w tabeli a Core Data ............................................................. 608
Sposób: edycja danych na Ĕywo w widoku tabeli Core Data ....................................... 610
Sposób: implementacja funkcji cofnij i przywróè w Core Data ..................................... 612
Podsumowanie ...................................................................................................... 615
13
Komunikaty ostrzeĔeþ wyĈwietlane uĔytkownikowi ................................... 617
BezpoĈrednia komunikacja z uĔytkownikiem poprzez komunikaty ............................... 617
Utworzenie prostego komunikatu ....................................................................... 617
Delegat komunikatu .......................................................................................... 618
WyĈwietlenie komunikatu .................................................................................. 620
Rodzaje komunikatów ....................................................................................... 620
„Proszö czekaè” — wyĈwietlenie uĔytkownikowi paska postöpu ................................. 621
UĔywanie klasy UIActivityIndicatorView ................................................................ 621
UĔywanie klasy UIProgressView .......................................................................... 622
Sposób: komunikat bez przycisków ......................................................................... 623
Utworzenie päywajñcego wskaĒnika postöpu ........................................................ 625
Sposób: utworzenie komunikatu modalnego w pötli dziaäania .................................... 625
Spis treĈci
19
Sposób: uĔycie metody o zmiennej liczbie argumentów do utworzenia komunikatu ...... 628
WyĈwietlenie prostego menu .................................................................................. 629
Przewijanie menu ............................................................................................. 631
WyĈwietlanie tekstu w egzemplarzu UIActionSheet .............................................. 631
Sposób: utworzenie wäasnego widoku komunikatu .................................................... 631
Widok, który moĔna nacisnñè ............................................................................ 633
Sposób: proste okno typu Popover .......................................................................... 633
Sposób: powiadomienia lokalne .............................................................................. 635
WskaĒniki komunikatów ......................................................................................... 636
UĔywanie plakietek w aplikacji ........................................................................... 636
Sposób: proste komunikaty audio ........................................................................... 636
DĒwiöki systemowe ........................................................................................... 637
Wibracja .......................................................................................................... 638
Komunikaty ...................................................................................................... 638
OpóĒnienia ....................................................................................................... 639
I jeszcze jedno: wyĈwietlenie komunikatu i umoĔliwienie
dostosowania poziomu gäoĈnoĈci .......................................................................... 640
Podsumowanie ...................................................................................................... 641
14 MoĔliwoĈci urzñdzenia ...................
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :