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. ΠΠ»Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
2. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΊ ΡΠΎΠΌΡ Π²ΠΈΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΆΠ΅ΡΡΡ.
3. ΠΠΈΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΆΠ΅ΡΡΠ° ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Π»ΡΠ±ΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ ΠΆΠ΅ΡΡΠΎΠ², Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π΄Π°Π»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
β’ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ void;
β’ Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° UIGestureRecognizer, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ², Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°:
β (void) tapRecognizer:(UITapGestureRecognizer *)paramSender{
/* */
}
β (void) tapRecognizer{
/* */
}
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΆΠ΅ΡΡΠΎΠ² Π΄Π΅Π»ΡΡΡΡ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠ΅ (Discrete) ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅ (Continuous). ΠΠΈΡΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΆΠ΅ΡΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΆΠ΅ΡΡΠΎΠ², Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠ±Π»Π°Π΄Π°ΡΠ΅Π»Π΅. ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΆΠ΅ΡΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΎΠ±Π»Π°Π΄Π°ΡΠ΅Π»Ρ ΠΎ ΠΆΠ΅ΡΡΠ΅ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠΊΠ° ΡΡΠΎΡ ΠΆΠ΅ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΏΠΎΠΊΠ° ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΌ. Π₯ΠΎΡΡ ΠΎΠ½ΠΎ ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠΉ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π±ΡΠ» ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈ ΠΎΠ±Π° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅.
ΠΡΠ°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ ΠΆΠ΅ΡΡΠΎΠ². ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΆΠ΅ΡΡ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ, Π° ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠΎΡ ΠΆΠ΅ΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΡΡΠ²Π°Π΅Ρ ΠΏΠ°Π»ΡΡΡ ΠΎΡ ΡΠΊΡΠ°Π½Π°. ΠΠ΅ΡΠΎΠ΄, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ Π²ΡΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΆΠ΅ΡΡΠΎΠ², Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΡΠ°ΡΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ.
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΆΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° UIView Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° addGestureRecognizer:, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π³ΠΎΡΡ ΠΊ Π²ΠΈΠ΄Ρ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ removeGestureRecognizer:.
Π£ ΠΊΠ»Π°ΡΡΠ° UIGestureRecognizer Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ state. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ state ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅ΡΠ΅ΡΠΏΠ΅Π²Π°Π΅ΠΌΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΡ ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΉ ΠΆΠ΅ΡΡΠΎΠ².
ΠΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
β’ UIGestureRecognizerStatePossible;
β’ UIGestureRecognizerStateRecognized;
β’ UIGestureRecognizerStateFailed.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π»ΠΈ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ UIGestureRecognizerStateRecognized Π»ΠΈΠ±ΠΎ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ UIGestureRecognizerStateFailed, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠ΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΆΠ΅ΡΡΠΎΠ² ΠΏΡΠ΅ΡΠ΅ΡΠΏΠ΅Π²Π°ΡΡ ΠΈΠ½ΡΡ ΡΠ΅ΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π»ΡΠΌ:
β’ UIGestureRecognizerStatePossible;
β’ UIGestureRecognizerStateBegan;
β’ UIGestureRecognizerStateChanged;
β’ UIGestureRecognizerStateEnded;
β’ UIGestureRecognizerStateFailed.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° UIGestureRecognizerStatePossible Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΡΡ ΠΊΠ°ΡΠ°Π½ΠΈΠΉ ΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΆΠ΅ΡΡ. ΠΡΠΎΠΌΠ΅ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ UIGestureRecognizerStateCancelled, Π΅ΡΠ»ΠΈ ΠΆΠ΅ΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΆΠ΅ΡΡ ΠΏΠ°Π½ΠΎΡΠ°ΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ UIGestureRecognizerStateCancelled ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡ Π²ΡΡ ΠΆΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠΏΡΡΡ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Ρ ΠΆΠ΅ΡΡΠΎΠ² ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ UIGestureRecognizerStateFailed, Π° Π½Π΅ UIGestureRecognizerStateEnded.
10.1. ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ΡΡΠΎΠ² ΡΠΌΠ°Ρ ΠΈΠ²Π°Π½ΠΈΡ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠΈΠ΅ ΠΆΠ΅ΡΡΡ ΡΠΌΠ°Ρ ΠΈΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π½Π° Π²ΠΈΠ΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Ρ ΠΎΠΊΠ½Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΡΠ°Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° UISwipeGestureRecognizer ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ UIView:
#import Β«ViewController.hΒ»
@interface ViewController ()
@property (nonatomic, strong)
UISwipeGestureRecognizer *swipeGestureRecognizer;
@end
@implementation ViewController