ΠΠΎΠ΄ Π²Π·ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅Π»Π΅Π³Π°ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
#import Β«AppDelegate.hΒ»
#import <PassKit/PassKit.h>
@interface AppDelegate ()
@property (nonatomic, strong) PKPassLibrary *passLibrary;
@end
NSString *PassIdentifier = @"pass.pixolity.testingpasskit";
NSString *PassSerialNumber = @"p69f2J";
NSString *DepartureKey = @"departure";
NSString *DeparturePlatformKey = @"departurePlatform";
NSString *Arrival = @"arrival";
NSString *ArrivalPlatform = @"arrivalPlatform";
@implementation AppDelegate
β (void) displayPassInformation:(PKPass *)paramPass{
if (paramPass == nil){
NSLog(@"The given pass is nil.");
return;
}
NSLog(@"Departs From = %@",
[paramPass localizedValueForFieldKey: DepartureKey]);
NSLog(@"Departure Platform = %@",
[paramPass localizedValueForFieldKey: DeparturePlatformKey]);
NSLog(@"Arrives at = %@",
[paramPass localizedValueForFieldKey: Arrival]);
NSLog(@"Arrival Platform = %@",
[paramPass localizedValueForFieldKey: ArrivalPlatform]);
}
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
if ([PKPassLibrary isPassLibraryAvailable]){
self.passLibrary = [[PKPassLibrary alloc] init];
PKPass *pass =
[self.passLibrary passWithPassTypeIdentifier: PassIdentifier
serialNumber: PassSerialNumber];
[self displayPassInformation: pass];
} else {
/* ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ */
NSLog(@"The pass library is not available.");
}
self.window = [[UIWindow alloc]
initWithFrame: [[UIScreen mainScreen] bounds]];
// Π’ΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ°
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°Π»ΠΎΠ½Π° ΠΈ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠΎΠ·Π΄Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΠ°Ρ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°Π»ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π΅Π½ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ/Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ°Π»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π» 19.2.
Π‘Π½ΠΎΡΠΊΠΈ
1
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΌ.: http://habrahabr.ru/post/79280/. β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
2
Odd (Π°Π½Π³Π».) β Β«Π½Π΅ΡΠ΅ΡΠ½ΡΠΉΒ», delete (Π°Π½Π³Π».) β Β«ΡΠ΄Π°Π»ΠΈΡΡΒ». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
3
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°: Β«ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Β». ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ°: Β«ΠΠ΅ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Β». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
4
Π ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΡΠ»Π΅Ρ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΊΠ°Ρ ΡΠ²ΡΠ·Ρ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ action, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://habrahabr.ru/post/30553/. β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
5
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΡΠ΅Π³Π²Π΅ΡΡ ΠΈ ΠΈΡ ΡΠΎΠ»ΠΈ Π² ΡΠ°ΡΠΊΠ°Π΄ΡΠΎΠ²ΠΊΠ°Ρ : http://www.raywenderlich.com/ru/24949/. β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
6
Invocation (Π°Π½Π³Π».) β Β«Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΡΒ». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
7
Main (Π°Π½Π³Π».) β Β«Π³Π»Π°Π²Π½ΡΠΉΒ», run (Π°Π½Π³Π».) β Β«ΡΠ°Π±ΠΎΡΠΈΠΉΒ», loop (Π°Π½Π³Π».) β Β«ΡΠΈΠΊΠ»Β». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
8
Β«ΠΡΠΈΠ±ΠΊΠ°: Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠΈΡΠ°Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅ΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°ΡΒ». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
9
Pan (Π°Π½Π³Π».) β Β«ΠΏΠ°Π½ΠΎΡΠ°ΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β», recognizer (Π°Π½Π³Π».) β Β«ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΡΒ». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
10
ΠΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ from ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°. β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
11
Π£ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΡΡ ΠΈ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ β Β«ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΠ΅Β». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.
12
StartTopLeft (Π°Π½Π³Π».) β Β«Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°Β», ImageView (Π°Π½Π³Π».) β Β«Π²ΠΈΠ΄ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌΒ», Animation (Π°Π½Π³Π».) β Β«Π°Π½ΠΈΠΌΠ°ΡΠΈΡΒ». β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅Ρ.