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

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

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

Π’ SDK iOS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ внСшний Π²ΠΈΠ΄ слайдСра. НапримСр, ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСстандартный Π²ΠΈΠ΄. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, просто ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ setThumbImage: forState: ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

β€’ UIControlStateNormal β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ состояниС ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ;

β€’ UIControlStateHighlighted β€” ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π° мСстС ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π΅Π³ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ.


Π― ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» Π΄Π²Π° изобраТСния: ΠΎΠ΄Π½ΠΎ для стандартного состояния ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” для Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ (Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠ³ΠΎ) состояния. Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΡ… ΠΊ слайдСру:


[self.slider setThumbImage: [UIImage imageNamed:@"ThumbNormal.png"]

forState: UIControlStateNormal];

[self.slider setThumbImage: [UIImage imageNamed:@"ThumbHighlighted.png"]

forState: UIControlStateHighlighted];


Π’Π΅ΠΏΠ΅Ρ€ΡŒ взглянСм, ΠΊΠ°ΠΊ выглядит Π² эмуляторС Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ слайдСр (рис. 1.19).


Рис. 1.19. Π‘Π»Π°ΠΉΠ΄Π΅Ρ€ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠΌ

1.7. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ UISlider

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

Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ графичСского интСрфСйса UISlider, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π° свой вкус ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ внСшний Π²ΠΈΠ΄.

РСшСниС

Π›ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй слайдСра, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ для Π΅Π³ΠΎ элСмСнтов собствСнныС рисунки.

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

Apple ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, прСдоставив Π½Π°ΠΌ Π² iOS SDK ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для оформлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’ частности, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² интСрфСйсС. Π‘Ρ…Π΅ΠΌΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ состав ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° рис. 1.20.


Рис. 1.20. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ UISlider


Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UISlider ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ свойство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ внСшний Π²ΠΈΠ΄ слайдСра. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ ΠΈΠ· этих свойств ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

β€’ minimumTrackTintColor β€” это свойство Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ для области ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

β€’ thumbTintColor β€” это свойство, ΠΊΠ°ΠΊ понятно ΠΈΠ· Π΅Π³ΠΎ названия, Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°;

β€’ maximumTrackTintColor β€” это свойство Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ для области ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ВсС эти свойства относятся ΠΊ Ρ‚ΠΈΠΏΡƒ UIColor.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Π·Ρ†Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ инстанцируСм UISlider ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ Π²ΠΈΠ΄Π°, располоТСнного Π² нашСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, здСсь ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ для области ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (красный), Ρ†Π²Π΅Ρ‚ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° (Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ) ΠΈ Ρ†Π²Π΅Ρ‚ области ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π·Π΅Π»Π΅Π½Ρ‹ΠΉ):


β€” (void)viewDidLoad{

[super viewDidLoad];


/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ слайдСр */

self.slider = [[UISlider alloc] initWithFrame: CGRectMake(0.0f,

0.0f,

118.0f,

23.0f)];

self.slider.value = 0.5;

self.slider.minimumValue = 0.0f;

self.slider.maximumValue = 1.0f;

self.slider.center = self.view.center;

[self.view addSubview: self.slider];


/* Π—Π°Π΄Π°Π΅ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ для области ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ */

self.slider.minimumTrackTintColor = [UIColor redColor];


/* Π—Π°Π΄Π°Π΅ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ для ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° */

self.slider.maximumTrackTintColor = [UIColor greenColor];


/* Π—Π°Π΄Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ для области ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ */

self.slider.thumbTintColor = [UIColor blackColor];

}


Если Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, ΠΊΠ°ΠΊ Π½Π° рис. 1.21.


Рис. 1.21. ΠžΡ‚Ρ‚Π΅Π½ΠΊΠΈ всСх составных частСй слайдСра ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹


Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ слайдСр Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС. ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно. ИмСнно поэтому Apple ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы измСнСния внСшнСго Π²ΠΈΠ΄Π° слайдСра, позволяя Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ изобраТСния для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… изобраТСниях.

β€’ Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для минимального значСния. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ слайдСра Ρƒ Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ края. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ прСдоставляСтся, поэтому Π²Ρ‹ Π΅Π³ΠΎ ΠΈ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ссли просто создадитС Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²Ρ‹ΠΉ слайдСр. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΊΠ°ΠΊ трактуСтся минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² контСкстС Π΄Π°Π½Π½ΠΎΠ³ΠΎ слайдСра. НапримСр, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ ΡΡ€ΠΊΠΎΡΡ‚ΡŒ экрана, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡ‚ΡƒΡ…ΡˆΠ΅ΠΉ Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ. Она ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ дальшС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ Π² сторону минимального значСния (Π²Π»Π΅Π²ΠΎ), Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ тусклым Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ экран. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ относящимся ΠΊ слайдСру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра setMinimumValueImage:. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎ 23 Ρ‚ΠΎΡ‡ΠΊΠΈ Π² высоту ΠΈ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с сСтчатым дисплССм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΄Π²ΠΎΠ΅ ΠΊΡ€ΡƒΠΏΠ½Π΅Π΅.

 Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для области ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π΅Π΅ слайдСра Π»Π΅Π²Π΅Π΅ ΠΎΡ‚ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ относящимся ΠΊ слайдСру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра setMinimumTrackImage: forState:. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ 11 Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 9 Ρ‚ΠΎΡ‡Π΅ΠΊ Π² высоту ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚Π°ΠΊΠΈΡ… изобраТСниях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 17.5).

 Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° β€” это СдинствСнный двиТущийся элСмСнт слайдСра. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ относящимся ΠΊ слайдСру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра setThumbImage: forState:. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ 23 Ρ‚ΠΎΡ‡ΠΊΠΈ Π² высоту ΠΈ 23 Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

 Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для области ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΉ части ΠΊΠΎΠ»Π΅ΠΈ слайдСра, которая находится справа ΠΎΡ‚ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ относящимся ΠΊ слайдСру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра setMaximumTrackImage: forState:. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ 11 Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 9 Ρ‚ΠΎΡ‡Π΅ΠΊ Π² высоту ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚Π°ΠΊΠΈΡ… изобраТСниях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 17.5).

 Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для максимального значСния. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρƒ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края слайдСра. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π½ΠΎ, разумССтся, трактуСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ с ΡΡ€ΠΊΠΎΡΡ‚ΡŒΡŽ Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ, допустим, Ρ‡Ρ‚ΠΎ справа ΠΎΡ‚ ΠΊΠΎΠ»Π΅ΠΈ с ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠΌ Ρƒ нас ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° яркая Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ°, ΠΈΡΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ Π»ΡƒΡ‡ΠΈ. Π’Π°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ понятно, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ дальшС Π²ΠΏΡ€Π°Π²ΠΎ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, Ρ‚Π΅ΠΌ ярчС становится экран. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ относящимся ΠΊ слайдСру ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ экзСмпляра setMaximumValueImage:. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ 23 Ρ‚ΠΎΡ‡ΠΊΠΈ Π² высоту ΠΈ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ, прСдоставляСмыС Π²Π°ΠΌΠΈ для областСй ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚Π°ΠΊΠΈΡ… изобраТСниях рассказано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 17.5.

Для этого упраТнСния я создал ΠΏΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ β€” ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° слайдСра. УбСдился, Ρ‡Ρ‚ΠΎ изобраТСния для областСй с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠžΡ„ΠΎΡ€ΠΌΠ»ΡΡ этот слайдСр ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ, я ΡΡ‚Ρ€Π΅ΠΌΠ»ΡŽΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ мСняСт Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Π΅: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° Π²Π»Π΅Π²ΠΎ становится ΠΏΡ€ΠΎΡ…Π»Π°Π΄Π½Π΅Π΅, Π²ΠΏΡ€Π°Π²ΠΎ β€” Ρ‚Π΅ΠΏΠ»Π΅Π΅. Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ слайдСр ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:


#import Β«ViewController.hΒ»


@interface ViewController ()

@property (nonatomic, strong) UISlider *slider;

@end


@implementation ViewController


/*

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° для области слайдСра, содСрТащСй ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния

*/

β€” (UIImage *) minimumTrackImage{

UIImage *result = [UIImage imageNamed:@"MinimumTrack"];

UIEdgeInsets edgeInsets;

edgeInsets.left = 4.0f;

edgeInsets.top = 0.0f;

edgeInsets.right = 0.0f;

edgeInsets.bottom = 0.0f;

result = [result resizableImageWithCapInsets: edgeInsets];

return result;

}


/*

Аналогично ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ этот Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° для области слайдСра, содСрТащСй ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния

*/

β€” (UIImage *) maximumTrackImage{

UIImage *result = [UIImage imageNamed:@"MaximumTrack"];

UIEdgeInsets edgeInsets;

edgeInsets.left = 0.0f;

edgeInsets.top = 0.0f;

edgeInsets.right = 3.0f;

edgeInsets.bottom = 0.0f;

result = [result resizableImageWithCapInsets: edgeInsets];

return result;

}


β€” (void)viewDidLoad{

[super viewDidLoad];


/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ слайдСр */