Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 10

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

else if ([buttonTitle isEqualToString: [self noButtonTitle]]){

NSLog(@"User pressed the No button.");

}


}

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠΎΠ³Π΄Π° нСсколько спСциалистов Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ исходный ΠΊΠΎΠ΄, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ надписи с ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΠ· Π²ΠΈΠ΄Π°-прСдупрСТдСния с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ строками, Π° Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, какая ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡΡΡŒ Π½Π° индСкс этой ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с индСксом Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, программисту придСтся Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π» сконструирован Π²ΠΈΠ΄ с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΈ ΡƒΠΆΠ΅ Π² этом ΠΊΠΎΠ΄Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρƒ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ°ΠΊΠΎΠΉ индСкс. Π’ рассмотрСнном ΠΆΠ΅ Π½Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π» создан Π²ΠΈΠ΄ с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ buttonTitleAtIndex: класса UIAlertView. ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ индСкс ΠΊΠ½ΠΎΠΏΠΊΠΈ, отсчитываСмый с нуля (ΠΊΠ½ΠΎΠΏΠΊΠ° находится Π² нашСм Π²ΠΈΠ΄Π΅), ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ строку, которая прСдставляСт собой надпись Π½Π° этой ΠΊΠ½ΠΎΠΏΠΊΠ΅ β€” Ссли такая надпись Π²ΠΎΠΎΠ±Ρ‰Π΅ имССтся. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°ΠΆΠ°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. ИндСкс этой ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π°ΠΌ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ buttonIndex ΠΌΠ΅Ρ‚ΠΎΠ΄Π° alertView: clickedButtonAtIndex:. Если вас интСрСсуСт надпись Π½Π° этой ΠΊΠ½ΠΎΠΏΠΊΠ΅, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ buttonTitleAtIndex: класса UIAlertView. ВсС Π³ΠΎΡ‚ΠΎΠ²ΠΎ!

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для тСкстового Π²Π²ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ адрСс. Для этого, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½Π΅Π΅, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ оформлСния прСдупрСТдСния UIAlertViewStylePlainTextInput:


β€” (void) viewDidAppear:(BOOL)animated{

[super viewDidAppear: animated];


UIAlertView *alertView = [[UIAlertView alloc]

initWithTitle:@"Credit Card Number"

message:@"Please enter your credit card number: "

delegate: self

cancelButtonTitle:@"Cancel"

otherButtonTitles:@"OK", nil];

[alertView setAlertViewStyle: UIAlertViewStylePlainTextInput];

/* ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ для этого тСкстового поля Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ. */

UITextField *textField = [alertView textFieldAtIndex:0];

textField.keyboardType = UIKeyboardTypeNumberPad;

[alertView show];


}

Если сСйчас Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π½Π° рис. 1.4.


Рис. 1.4. Π’ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ для Π²Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ тСкстом


Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ измСняСм ΡΡ‚ΠΈΠ»ΡŒ оформлСния Π²ΠΈΠ΄Π° Π½Π° UIAlertViewStylePlainTextInput, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ссылку Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ СдинствСнноС тСкстовоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ. Бсылку Π½Π° тСкстовоС ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, связанной с тСкстовым ΠΏΠΎΠ»Π΅ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ тСкстовых полях ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 1.19.

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ тСкст. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, защищаСтся Ρ‚Π°ΠΊΠΎΠΉ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ (рис. 1.5). Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


β€” (void) viewDidAppear:(BOOL)animated{

[super viewDidAppear: animated];


UIAlertView *alertView = [[UIAlertView alloc]

initWithTitle:@"Password"

message:@"Please enter your password: "

delegate: self

cancelButtonTitle:@"Cancel"

otherButtonTitles:@"OK", nil];


[alertView setAlertViewStyle: UIAlertViewStyleSecureTextInput];

[alertView show];


}


Рис. 1.5. Π’Π²ΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ тСкста Π² ΠΎΠΊΠ½ΠΎ с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ


Π‘Ρ‚ΠΈΠ»ΡŒ UIAlertViewStyleSecureTextInput ΠΎΡ‡Π΅Π½ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ UIAlertViewStylePlainTextInput, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ вмСсто символов тСкста ΠΌΡ‹ подставляСм ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ символы.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ довольно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ. Он позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΄Π²Π° тСкстовых поля: ΠΎΠ΄Π½ΠΎ для ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” для пароля. ВСкст Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” скрыт:


β€” (void) viewDidAppear:(BOOL)animated{

[super viewDidAppear: animated];


UIAlertView *alertView = [[UIAlertView alloc]

initWithTitle:@"Password"

message:@"Please enter your credentials: "

delegate: self

cancelButtonTitle:@"Cancel"

otherButtonTitles:@"OK", nil];


[alertView setAlertViewStyle: UIAlertViewStyleLoginAndPasswordInput];

[alertView show];


}


Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π½Π° рис. 1.6.


Рис. 1.6. Π‘Ρ‚ΠΈΠ»ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π Π°Π·Π΄Π΅Π» 1.19.

1.2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ использованиС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UISwitch

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

РСшСниС

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ классом UISwitch.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Класс UISwitch прСдоставляСт инструмСнт управлСния ON/OFF (Π’ΠΊΠ»./Π’Ρ‹ΠΊΠ».), ΠΊΠ°ΠΊ Π½Π° рис. 1.7. Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с автоматичСской ΠΊΠ°ΠΏΠΈΡ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, автоматичСским исправлСниСм орфографичСских ошибок ΠΈ Ρ‚. Π΄.


Рис. 1.7. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ UISwitch, примСняСмый Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Settings (Настройки) Π² iPhone


Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора интСрфСйса, Π»ΠΈΠ±ΠΎ сдСлав экзСмпляр Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π² ΠΊΠΎΠ΄Π΅. РСшим эту Π·Π°Π΄Π°Ρ‡Ρƒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ способом. Π˜Ρ‚Π°ΠΊ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ классС Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ класс View Controller (ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²ΠΈΠ΄Π°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ, Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ создаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚ΠΈΠΏΠ° Single View Application (ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с СдинствСнным Π²ΠΈΠ΄ΠΎΠΌ), Ρ„Π°ΠΉΠ» Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (.m) ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ViewController.m. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ этот Ρ„Π°ΠΉΠ».

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ свойство Ρ‚ΠΈΠΏΠ° UISwitch ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ mainSwitch:


#import Β«ViewController.hΒ»


@interface ViewController ()

@property (nonatomic, strong) UISwitch *mainSwitch;

@end


@implementation ViewController

…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° (Ρ„Π°ΠΉΠ»Ρƒ. m) ΠΈ синтСзируСм свойство mySwitch:

#import Β«Creating_and_Using_Switches_with_UISwitchViewController.hΒ»


@implementation Creating_and_Using_Switches_with_UISwitchViewController


@synthesize mySwitch;


…


МоТно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ созданию ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ. НайдСм ΠΌΠ΅Ρ‚ΠΎΠ΄ viewDidLoad Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°:


β€” (void)viewDidLoad{

[super viewDidLoad];

}

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ помСстим Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ нашСго Π²ΠΈΠ΄Π°:

β€” (void)viewDidLoad{

[super viewDidLoad];


/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ */

self.mainSwitch = [[UISwitch alloc] initWithFrame:

CGRectMake(100, 100, 0, 0)];


[self.view addSubview: self.mainSwitch];

}


Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° UISwitch ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ initWithFrame: для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, относится ΠΊ Ρ‚ΠΈΠΏΡƒ CGRect. CGRect опрСдСляСт Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, отсчитывая ΠΈΡ… ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x; y), находящСйся Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΈ высотС. МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ CGRect, воспользовавшись встраиваСмым ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ CGRectMake, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, β€” это ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (x; y), Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° β€” высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π‘ΠΎΠ·Π΄Π°Π² ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, ΠΌΡ‹ просто добавляСм Π΅Π³ΠΎ ΠΊ Π²ΠΈΠ΄Ρƒ нашСго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запустим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° эмуляторС iPhone. На рис. 1.8 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ происходит.


Рис. 1.8. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² Π²ΠΈΠ΄Π΅


Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ находится Π² состоянии Off (Π’Ρ‹ΠΊΠ».). Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π² качСствС стандартного ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ состояниС, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства on экзСмпляра UISwitch. Или ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setOn:, относящийся ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ:

[self.mySwitch setOn: YES];

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ setOn: animated:. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ animated ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ YES, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΈΠ· состояния on Π² состояниС off этот процСсс Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹Π΅ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ свойства on ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ isOn:


if ([self.mySwitch isOn]){

NSLog(@"The switch is on.");

} else {

NSLog(@"The switch is off.");

}


Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС Β«Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ» ΠΈΠ»ΠΈ Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ», Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ваш класс ΠΊΠ°ΠΊ Ρ†Π΅Π»ΡŒ (Target) ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ addTarget: action: forControlEvents: класса UISwitch: