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

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

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

[self.mySwitch addTarget: self

action:@selector(switchIsChanged:)

forControlEvents: UIControlEventValueChanged];


Π—Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ switchIsChanged:. Когда срСда Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° событиС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ UIControlEventValueChanged, ΠΎΠ½Π° пСрСдаст ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π²Ρ‹ смоТСтС ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π» Π΄Π°Π½Π½ΠΎΠ΅ событиС:


β€” (void) switchIsChanged:(UISwitch *)paramSender{


NSLog(@"Sender is = %@", paramSender);


if ([paramSender isOn]){

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

} else {

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

}


}


Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС iOS. Π’ ΠΎΠΊΠ½Π΅ консоли Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ сообщСния:


Sender is = <UISwitch: 0x6e13500;

frame = (100 100; 79 27);

layer = <CALayer: 0x6e13700>>

The switch is turned off.

Sender is = <UISwitch: 0x6e13500;

frame = (100 100; 79 27);

layer = <CALayer: 0x6e13700>>

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½.

1.3. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ UISwitch

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

Π’Ρ‹ вставили Π² ваш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс нСсколько экзСмпляров UISwitch ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π²ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π² этот графичСский интСрфСйс.

РСшСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· свойств настройки Ρ‚ΠΎΠ½ΠΎΠ²/ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ класса UISwitch, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ tintColor ΠΈΠ»ΠΈ onTintColor.

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

Apple ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ оформлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π² частности UISwitch. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях SDK Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ подкласс ΠΎΡ‚ UISwitch лишь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ ΠΈ Ρ†Π²Π΅Ρ‚ элСмСнта. Π’ соврСмСнном iOS SDK Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

БущСствуСт Π΄Π²Π° основных способа оформлСния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ.

 Π Π°Π±ΠΎΡ‚Π° с ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°ΠΌΠΈ. ΠžΡ‚Ρ‚Π΅Π½ΠΊΠΈ β€” это Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊ UISwitch. Новый ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ накладываСтся ΠΏΠΎΠ²Π΅Ρ€Ρ… Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ UISwitch Π²Ρ‹ навСрняка ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ. Когда Π²Ρ‹ примСняСтС ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ†Π²Π΅Ρ‚Π°, этот Ρ†Π²Π΅Ρ‚ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ с Π½Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ создаСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ элСмСнтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

 Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚:

 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния. Находится Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½. Π¨ΠΈΡ€ΠΈΠ½Π° изобраТСния составляСт 77 Ρ‚ΠΎΡ‡Π΅ΠΊ, высота β€” 22 Ρ‚ΠΎΡ‡ΠΊΠΈ;

 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния. Находится Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½. Π¨ΠΈΡ€ΠΈΠ½Π° изобраТСния составляСт 77 Ρ‚ΠΎΡ‡Π΅ΠΊ, высота β€” 22 Ρ‚ΠΎΡ‡ΠΊΠΈ.

На рис. 1.9 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅.


Рис. 1.9. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ UISwitch ΠΈ изобраТСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ состояниям


Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… состояний β€” ΠΎΠ½ Π»ΠΈΠ±ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, находящСгося Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… Π²Π°ΠΆΠ½Ρ‹Ρ… свойств класса UISwitch (всС эти свойства относятся ΠΊ Ρ‚ΠΈΠΏΡƒ UIColor):

tintColor β€” ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ, примСняСмый ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии. К соТалСнию, Apple ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»Π° для Π½Π΅Π³ΠΎ Π½Π΅ совсСм Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π°Π·Π²Π°Ρ‚ΡŒ это свойство offTintColor);

β€’ thumbTintColor β€” ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Ρ€Ρ‹Ρ‡Π°ΠΆΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ;

β€’ onTintColor β€” ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ, примСняСмый ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии.

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии Π½Π° красный, Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ β€” Π½Π° ΠΊΠΎΡ€ΠΈΡ‡Π½Π΅Π²Ρ‹ΠΉ. ΠŸΡ€ΠΈ этом Ρ€Ρ‹Ρ‡Π°ΠΆΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚. Π­Ρ‚ΠΎ Π½Π΅ самая Π»ΡƒΡ‡ΡˆΠ°Ρ комбинация Ρ†Π²Π΅Ρ‚ΠΎΠ², Π½ΠΎ Π² цСлях, поставлСнных Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, я ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅:


β€” (void)viewDidLoad

{

[super viewDidLoad];


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

self.mainSwitch = [[UISwitch alloc] initWithFrame: CGRectZero];

self.mainSwitch.center = self.view.center;

[self.view addSubview: self.mainSwitch];


/* ΠžΡ„ормляСм ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ */


/* Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ */

self.mainSwitch.tintColor = [UIColor redColor];

/* Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ */

self.mainSwitch.onTintColor = [UIColor brownColor];

/* Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ Ρ€Ρ‹Ρ‡Π°ΠΆΠΊΠ° Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ */

self.mainSwitch.thumbTintColor = [UIColor greenColor];

}


Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ внСшнСго Π²ΠΈΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, связанному с использованиСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Β«Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ» ΠΈ Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ». ΠŸΡ€ΠΈ этом Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠ°Π·Π½Ρ‹Π΅ изобраТСния Β«Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ» ΠΈ Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² iOS 6 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅. iOS 7 ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ изобраТСния ΠΈ ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ внСшнСго Π²ΠΈΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°ΠΌΠΈ. Как Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½Π΅Π΅, ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° изобраТСния Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ β€” ΠΊΠ°ΠΊ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ для Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ состояния β€” Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ 77 Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ высоту 22 Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΈ сСтчатым дисплССм). Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΈΡ… Π² ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Xcode ΠΏΠΎΠ΄ названиями [email protected] ΠΈ [email protected] (для сСтчатого дисплСя), Π° Ρ‚Π°ΠΊΠΆΠ΅ помСстил здСсь разновидности ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ дисплСя. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ прСдстоит ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Π·Π°ΠΊΠ°Π·Π½Ρ‹Π΅ изобраТСния Β«Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ» ΠΈ Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ». Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами UISwitch:

onImage β€” ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½Π΅Π΅, это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½;

β€’ offImage β€” это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ соотвСтствуСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ Π² состоянии Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ».

А Π²ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ эффСкта:


β€” (void)viewDidLoad

{

[super viewDidLoad];


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

self.mainSwitch = [[UISwitch alloc] initWithFrame: CGRectZero];

self.mainSwitch.center = self.view.center;

/* Π£Π±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ Ρ€Π°Π·ΠΌΡ‹Ρ‚Ρ‹ΠΌ Π² iOS-эмуляторС */

self.mainSwitch.frame = [self roundedValuesInRect: self.mainSwitch.frame];

[self.view addSubview: self.mainSwitch];


/* ΠžΡ„ормляСм ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ */

self.mainSwitch.onImage = [UIImage imageNamed:@"On"];

self.mainSwitch.offImage = [UIImage imageNamed:@"Off"];

}

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

Π Π°Π·Π΄Π΅Π» 1.2.

1.4. Π’Ρ‹Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UIPickerView

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

НСобходимо ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прилоТСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ значСния ΠΈΠ· списка.

РСшСниС

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

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

Π’ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° (Picker View) β€” это элСмСнт графичСского интСрфСйса, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ списки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Timer (Π’Π°ΠΉΠΌΠ΅Ρ€) прилоТСния Clock (Часы) Π² iPhone ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (рис. 1.10).


Рис. 1.10. Π’ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π°, располоТСнный Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана


Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятом Π²ΠΈΠ΄Π΅ Π²Ρ‹Π±ΠΎΡ€Π° содСрТится Π΄Π²Π° нСзависимых Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнта, ΠΎΠ΄ΠΈΠ½ слСва, Π΄Ρ€ΡƒΠ³ΠΎΠΉ справа. Π’ Π»Π΅Π²ΠΎΠΉ части Π²ΠΈΠ΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ часы (0, 1, 2 ΠΈ Ρ‚. Π΄.), Π° Π² ΠΏΡ€Π°Π²ΠΎΠΉ β€” ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ (18, 19, 20, 21, 22 ΠΈ Ρ‚. Π΄.). Π”Π²Π° этих элСмСнта Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π΅ΡΡ‚ΡŒ строки (Rows). На самом Π΄Π΅Π»Π΅ любой элСмСнт Π² любом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ прСдставлСн строкой, ΠΊΠ°ΠΊ ΠΌΡ‹ вскорС ΡƒΠ²ΠΈΠ΄ΠΈΠΌ. НапримСр, Π² Π»Π΅Π²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ 0 hours β€” это строка, 1 β€” это строка ΠΈ Ρ‚. Π΄.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° Π² Π²ΠΈΠ΄Π΅ нашСго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Π³Π΄Π΅ находится исходный ΠΊΠΎΠ΄ Ρ‚ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСн ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ 1.2, Π³Π΄Π΅ обсуТдаСтся этот вопрос.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. m ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° нашСго Π²ΠΈΠ΄Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π² Π½Π΅ΠΌ Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π°:


@interface ViewController ()

@property (nonatomic, strong) UIPickerView *myPicker;

@end


@implementation ViewController


…

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ создадим Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ viewDidLoad ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° нашСго Π²ΠΈΠ΄Π°:

β€” (void)viewDidLoad{

[super viewDidLoad];


self.view.backgroundColor = [UIColor whiteColor];


self.myPicker = [[UIPickerView alloc] init];

self.myPicker.center = self.view.center;

[self.view addSubview: self.myPicker];


}


Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° выравниваСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Ρ‚ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится. Если ΠΌΡ‹ запустим это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС iOS 7, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ пустой экран. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² iOS 7 сам элСмСнт для Π²Ρ‹Π±ΠΎΡ€Π° Π±Π΅Π»Ρ‹ΠΉ ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ„ΠΎΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°.