ΠΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ Π±Π΅Π»ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ. ΠΡΠ°ΠΊ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° UIPickerView Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ UIPickerViewDataSource, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π² ΡΠ°ΠΉΠ»Π΅. m:
@interface ViewController () <UIPickerViewDataSource, UIPickerViewDelegate>
@property (nonatomic, strong) UIPickerView *myPicker;
@end
@implementation ViewController
β¦
Π₯ΠΎΡΠΎΡΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΡΠ°Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°:
β (void)viewDidLoad{
[super viewDidLoad];
self.myPicker = [[UIPickerView alloc] init];
self.myPicker.dataSource = self;
self.myPicker.center = self.view.center;
[self.view addSubview: self.myPicker];
}
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΠΏΡΡΠ°Π²ΡΠΈΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ, ΡΡΠΎ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» UIPickerViewDataSource. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ Command+Shift+O, Π²Π²Π΅ΡΡΠΈ UIPickerViewDataSource ΠΈ Π½Π°ΠΆΠ°ΡΡ Enter. Π’Π°ΠΊ Π²Ρ ΠΏΠΎΠΏΠ°Π΄Π΅ΡΠ΅ ΠΊ ΡΠΎΠΌΡ ΠΌΠ΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:
@protocol UIPickerViewDataSource<NSObject>
@required
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
β (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅
β (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component;
@end
ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π·Π΄Π΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ @required? ΠΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΆΠ΅Π»Π°ΡΡΠΈΠΉ ΡΡΠ°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, ΠΎΠ±ΡΠ·Π°Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°:
β (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
if ([pickerView isEqual: self.myPicker]){
return 1;
}
return 0;
}
β (NSInteger) pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component{
if ([pickerView isEqual: self.myPicker]){
return 10;
}
return 0;
}
ΠΡΠ°ΠΊ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°:
numberOfComponentsInPickerView: β ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΠ±ΠΎΡΠ°;
β’ pickerView: numberOfRowsInComponent: β Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²Π°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ΅Π΅ ΡΡΠ΅Π΄Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅.
ΠΡΠ°ΠΊ, ΠΌΡ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠ΅Π³ΠΎ Ρ 10 ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π»Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅ ΠΈ Π½Π°Π·Π²Π°Π»ΠΈ myPicker.
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ iPhone (ΡΠΈΡ. 1.11). Π₯ΠΌ-ΠΌ-ΠΌ, ΠΈ ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ?
Π ΠΈΡ. 1.11. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π½Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ
ΠΠΎ Π²ΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½Π°Ρ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° Π·Π½Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ, ΠΈ ΠΌΡ ΡΠ΅ΡΠΈΠΌ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ² Π΄Π΅Π»Π΅Π³Π°Ρ Π΄Π»Ρ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°. ΠΠ΅Π»Π΅Π³Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° UIPickerView Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ UIPickerViewDelegate ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ @required.
ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π³Π°ΡΠ° UIPickerViewDelegate, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ pickerView: titleForRow: forComponent:. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ° ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ NSString. Π‘ΡΡΠΎΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ NSString, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ΄Ρ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠ°ΠΊ Β«Π‘ΡΡΠΎΠΊΠ° 1Β», Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ: Β«Π‘ΡΡΠΎΠΊΠ° 2Β», Β«Π‘ΡΡΠΎΠΊΠ° 3Β» ΠΈ Ρ. Π΄. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ delegate Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°:
self.myPicker.delegate = self;
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΠ·ΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π³Π°ΡΠ°:
β (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component{
if ([pickerView isEqual: self.myPicker]){
/* Π‘ΡΡΠΎΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°
(Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0) ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»Π°ΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° 1. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ
ΠΏΡΠΈΠ±Π°Π²ΠΈΡΡ +1 ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. */
result = [NSString stringWithFormat:@"Row %ld", (long)row + 1];
}
return nil;
}
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ (ΡΠΈΡ. 1.12).
Π ΠΈΡ. 1.12. ΠΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
ΠΠΈΠ΄Ρ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠ° Π² iOS 6 ΠΈ ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° showsSelectionIndicator, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NO. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π° YES, Π»ΠΈΠ±ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setShowsSelectionIndicator: Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ:
self.myPicker.showsSelectionIndicator = YES;
Π‘Π½ΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° Π² ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΊΠ°Ρ ΠΏΠΎΠ»ΡΠ·Π° ΠΎΡ Π²ΠΈΠ΄Π° Π²ΡΠ±ΠΎΡΠ°, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°Π» Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²? ΠΠ°, Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎ Apple ΡΠΆΠ΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»Π°ΡΡ ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»Π° Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅. ΠΡΠ·ΠΎΠ²Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ selectedRowInComponent: ΠΊΠ»Π°ΡΡΠ° UIPickerView ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ), Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠΎ ΡΠΈΡΠ»ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ±ΡΠ°Π½Π° Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅.
ΠΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π²Π°ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΠ±ΠΎΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ° ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π·Π°ΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΎΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ (ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° reloadAllComponents), Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π½Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ reloadComponent:. ΠΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π» 1.2.
1.5. ΠΡΠ±ΠΎΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ UIDatePicker
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ΅Π½ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ UIDatePicker.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ»Π°ΡΡ UIDatePicker ΠΎΡΠ΅Π½Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΊΠ»Π°ΡΡ UIPickerView. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ UIDatePicker β ΡΡΠΎ ΡΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠ°. Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Calendar (ΠΠ°Π»Π΅Π½Π΄Π°ΡΡ) Π² iPhone (ΡΠΈΡ. 1.13).
Π ΠΈΡ. 1.13. ΠΠΈΠ΄ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄Π°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΠΏΠ° UIDatePicker, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ΄Π΅Π»ΠΈΠΌ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°:
#import Β«ViewController.hΒ»
@interface ViewController ()
@property (nonatomic, strong) UIDatePicker *myDatePicker;
@end
@implementation ViewController
β¦
Π ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ, ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ Π²ΠΈΠ΄ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄Π°ΡΡ:
β (void)viewDidLoad{
[super viewDidLoad];
self.myDatePicker = [[UIDatePicker alloc] init];
self.myDatePicker.center = self.view.center;
[self.view addSubview: self.myDatePicker];
}
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ (ΡΠΈΡ. 1.14).
Π ΠΈΡ. 1.14. ΠΡΠΎΡΡΠΎΠΉ Π²ΠΈΠ΄ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄Π°ΡΡ
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΠ±ΠΎΡΠ° Π΄Π°ΡΡ ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΡΡ Π΄Π°ΡΠ°. ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ. Π Π΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ datePickerMode, ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β UIDatePickerMode: