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

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

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

UITextFieldViewModeWhileEditing,

UITextFieldViewModeUnlessEditing,

UITextFieldViewModeAlways

}


Π˜Ρ‚Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π·Π°Π΄Π°Ρ‚ΡŒ UITextFieldViewModeWhileEditing Π² качСствС Ρ€Π΅ΠΆΠΈΠΌΠ° Π»Π΅Π²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ этот Π²ΠΈΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ тСкстовоС ΠΏΠΎΠ»Π΅. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ссли Π·Π°Π΄Π°Ρ‚ΡŒ здСсь Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UITextFieldViewModeUnlessEditing, Π»Π΅Π²Ρ‹ΠΉ Π²ΠΈΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ тСкстовоС ΠΏΠΎΠ»Π΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ начнСтся, Π»Π΅Π²Ρ‹ΠΉ Π²ΠΈΠ΄ исчСзнСт. Π’Π΅ΠΏΠ΅Ρ€ΡŒ запустим наш ΠΊΠΎΠ΄ Π² эмуляторС (рис. 1.53).


Рис. 1.53. ВСкстовоС ΠΏΠΎΠ»Π΅ с Π»Π΅Π²Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠΌ

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

Π Π°Π·Π΄Π΅Π» 1.17.

1.20. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… тСкстовых строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UITextView

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

ВрСбуСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС нСсколько строк тСкста с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ.

РСшСниС

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

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

Класс UITextView позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ нСсколько строк тСкста ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ содСрТимоС. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли содСрТимоС Π½Π΅ умСщаСтся Π² Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… тСкстового Π²ΠΈΠ΄Π°, Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ этого тСкстового Π²ΠΈΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ тСкст Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ· ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΅Π³ΠΎ части. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° тСкстового Π²ΠΈΠ΄Π°, входящСго Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ iOS, рассмотрим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Notes (Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚) Π² iPhone (рис. 1.54).


Рис. 1.54. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Notes (Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚) Π² iPhone, здСсь тСкст отобраТаСтся Π² тСкстовом Π²ΠΈΠ΄Π΅


Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ тСкстовый Π²ΠΈΠ΄ ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Для Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ тСкстовый Π²ΠΈΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° нашСго Π²ΠΈΠ΄Π°:


#import Β«ViewController.hΒ»


@interface ViewController ()

@property (nonatomic, strong) UITextView *myTextView;

@end


implementation ViewController


Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сам тСкстовый Π²ΠΈΠ΄. ΠœΡ‹ сдСлаСм тСкстовый Π²ΠΈΠ΄ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΊΠ°ΠΊ ΠΈ Π²ΠΈΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°:


β€” (void)viewDidLoad{

[super viewDidLoad];


self.myTextView = [[UITextView alloc] initWithFrame: self.view.bounds];

self.myTextView.text = @"Some text here…";

self.myTextView.contentInset = UIEdgeInsetsMake(10.0f, 0.0f, 0.0f, 0.0f);

self.myTextView.font = [UIFont systemFontOfSize:16.0f];

[self.view addSubview: self.myTextView];


}


Запустим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС iOS ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ выглядит (рис. 1.55).


Рис. 1.55. ВСкстовый Π²ΠΈΠ΄, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ всС экранноС пространство


Если ΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ тСкстового поля ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ снизу всплываСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. Она довольно крупная ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ тСкстовый Π²ΠΈΠ΄ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст ΠΈ Π΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄ΠΎ сСрСдины ΠΎΠΊΠ½Π° ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, вСсь ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, окаТСтся заслонСнным ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ (рис. 1.56).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ситуации, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ увСдомлСния:

β€’ UIKeyboardWillShowNotification β€” систСма Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° выводится Π½Π° экран для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ: тСкстовым ΠΏΠΎΠ»Π΅ΠΌ, тСкстовым Π²ΠΈΠ΄ΠΎΠΌ ΠΈ Ρ‚. Π΄.;

β€’ UIKeyboardDidShowNotification β€” систСма Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° отобразится Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ;

β€’ UIKeyboardWillHideNotification β€” систСма Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° скроСтся ΠΈΠ· Π²ΠΈΠ΄Π°;


Рис. 1.56. ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ тСкстовый Π²ΠΈΠ΄


β€’ UIKeyboardDidHideNotification β€” систСма Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скроСтся ΠΈΠ· Π²ΠΈΠ΄Π°.

УвСдомлСния ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ содСрТат ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, доступный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства userInfo. Он ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π½Π° экранС ΠΈ относится ΠΊ Ρ‚ΠΈΠΏΡƒ NSDictionary. Π’ словарС срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ имССтся ΠΊΠ»ΡŽΡ‡ UIKeyboardFrameEndUserInfoKey, содСрТащий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° NSValue. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π½Π° экранС. Π­Ρ‚Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ обозначаСтся ΠΊΠ°ΠΊ CGRect.

Наша стратСгия Ρ‚Π°ΠΊΠΎΠ²Π°: Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отобразится, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ способом ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ нашСго тСкстового Π²ΠΈΠ΄Π°. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ свойством contentInset класса UITextView, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, содСрТащСгося Π² тСкстовом ΠΏΠΎΠ»Π΅, β€” Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ, ниТнюю, ΠΏΡ€Π°Π²ΡƒΡŽ ΠΈ Π»Π΅Π²ΡƒΡŽ:


β€” (void) handleKeyboardDidShow:(NSNotification *)paramNotification{


/* ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. */

NSValue *keyboardRectAsObject =

[[paramNotification userInfo]

objectForKey: UIKeyboardFrameEndUserInfoKey];


/* ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² CGRect. */

CGRect keyboardRect;


[keyboardRectAsObject getValue:&keyboardRect];


/* Π—Π°Π΄Π°Π΅ΠΌ ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ нашСго тСкстового Π²ΠΈΠ΄Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΠ» Ρ€ΠΎΠ²Π½ΠΎ Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. */

self.myTextView.contentInset =

UIEdgeInsetsMake(0.0f,

0.0f,

keyboardRect.size.height,

0.0f);

}


β€” (void) handleKeyboardWillHide:(NSNotification *)paramNotification{

/* Π”Π΅Π»Π°Π΅ΠΌ тСкстовый Π²ΠΈΠ΄ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΊΠ°ΠΊ ΠΈ Π²ΠΈΠ΄, содСрТащий Π΅Π³ΠΎ. */

self.myTextView.contentInset = UIEdgeInsetsZero;

}


β€” (void) viewWillAppear:(BOOL)paramAnimated{

[super viewWillAppear: paramAnimated];


[[NSNotificationCenter defaultCenter]

addObserver: self

selector:@selector(handleKeyboardDidShow:)

name: UIKeyboardDidShowNotification

object: nil];


[[NSNotificationCenter defaultCenter]

addObserver: self

selector:@selector(handleKeyboardWillHide:)

name: UIKeyboardWillHideNotification

object: nil];


self.myTextView = [[UITextView alloc] initWithFrame: self.view.bounds];

self.myTextView.text = @"Some text here…";

self.myTextView.font = [UIFont systemFontOfSize:16.0f];

[self.view addSubview: self.myTextView];


}


β€” (void) viewWillDisappear:(BOOL)paramAnimated{

[super viewWillDisappear: paramAnimated];


[[NSNotificationCenter defaultCenter] removeObserver: self];

}


Π’ этом ΠΊΠΎΠ΄Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ увСдомлСниями Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ viewWillAppear: ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅ΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ ΠΈΡ… Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ viewWillDisappear:. Π’Π°ΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²ΠΈΠ΄Π° ΠΈΠ· списка ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹, вСроятно, Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ увСдомлСния, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. БлучаСтся, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²ΠΈΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния, Π½ΠΎ это Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π΄ΠΊΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ viewWillDisappear:. МнС Π½Π΅ Ρ€Π°Π· доводилось Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ программисты портят Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ прилоТСния, прСнСбрСгая этой простой Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.

Если Π²Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° выводится Π½Π° экран ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° с Π½Π΅Π³ΠΎ убираСтся, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ΡΠ»ΡƒΡˆΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. БообщСния Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° UITextField Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° начинаСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкстового поля, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π° экранС ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ устройству iOS Π±Π΅ΡΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bluetooth). Π‘ этой ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΎΠ½ смоТСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС тСкстовых ΠΏΠΎΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² вашСго прилоТСния. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎ Bluetooth Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° Π½Π° экранС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. И Ссли Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс станСт ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ начинаСтся Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ бСспроводной ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎ Bluetooth такая пСрСстройка окаТСтся Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ.

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

1.21. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UIButton

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

НСобходимо ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ события касания, связанныС с этой ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ.

РСшСниС

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

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

Кнопки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² прилоТСниях Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ дСйствия. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ настроСк iCloud Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Settings (Настройки) содСрТит ΠΊΠ½ΠΎΠΏΠΊΡƒ Delete Account (Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись) (рис. 1.57). Если Π½Π°ΠΆΠ°Ρ‚ΡŒ эту ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ iCloud ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ дСйствиС. Оно зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния. НС всС прилоТСния Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π² Π½ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΊΡƒ Delete (Π£Π΄Π°Π»ΠΈΡ‚ΡŒ). Как ΠΌΡ‹ вскорС ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ изобраТСния, Ρ‚Π°ΠΊ ΠΈ тСкст.