Դաս 6.15 – iOS Development: Pickers

0

Picker-ների Օգտագործումը

Picker-ը բաղկացած են պտտվող  ներքև իջնող view-ից, որը օգտագործվում է արժեք բռնելու համար:

Կարևոր Հատկություններ

  • delegate
  • dataSource

Կարևոր Մեթոդներ

- (void)reloadAllComponents
- (void)reloadComponent🙁NSInteger)component
- (NSInteger)selectedRowInComponent🙁NSInteger)component
- (void)selectRow🙁NSInteger)row inComponent🙁NSInteger)component
animated🙁BOOL)animated
- (void)selectRow🙁NSInteger)row inComponent🙁NSInteger)component
  animated🙁BOOL)animated

Թարմացրեք ViewController.h

Մենք կավելացնենք պնդումները text field-ի համար,  picker view, և  զանգված: Մենք կվերցնենք UITextFieldDelegate, UIPickerViewDataSource և UIPickerViewDelegate պրոտոկոլները: ViewController.h-ը հետևյալն է −

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
<UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate>
{
    
    UITextField *myTextField;
    UIPickerView *myPickerView;
    NSArray *pickerArray;
}
@end

Ավելացրեք Custom Մեթոդ addPickerView

-(void)addPickerView{
    pickerArray = [[NSArray alloc]initWithObjects:@"Chess",
    @"Cricket",@"Football",@"Tennis",@"Volleyball", nil];
    myTextField = [[UITextField alloc]initWithFrame:
    CGRectMake(10, 100, 300, 30)];
    myTextField.borderStyle = UITextBorderStyleRoundedRect;
    myTextField.textAlignment = UITextAlignmentCenter;
    myTextField.delegate = self;
    [self.view addSubview:myTextField];
    [myTextField setPlaceholder:@"Pick a Sport"];
    myPickerView = [[UIPickerView alloc]init];
    myPickerView.dataSource = self;
    myPickerView.delegate = self;
    myPickerView.showsSelectionIndicator = YES;
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
    initWithTitle:@"Done" style:UIBarButtonItemStyleDone 
    target:self action:@selector(done:)];
    UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:
    CGRectMake(0, self.view.frame.size.height-
    myDatePicker.frame.size.height-50, 320, 50)];
    [toolBar setBarStyle:UIBarStyleBlackOpaque];
    NSArray *toolbarItems = [NSArray arrayWithObjects: 
    doneButton, nil];
    [toolBar setItems:toolbarItems];
    myTextField.inputView = myPickerView;
    myTextField.inputAccessoryView = toolBar;

}

Կատարեք պատվիրակները ինչպես ցուցադրված են −

#pragma mark - Text field delegates

-(void)textFieldDidBeginEditing🙁UITextField *)textField{
    if ([textField.text isEqualToString:@""]) {
        [self dateChanged:nil];
    }
}
#pragma mark - Picker View Data source
-(NSInteger)numberOfComponentsInPickerView🙁UIPickerView *)pickerView{
    return 1;
}
-(NSInteger)pickerView🙁UIPickerView *)pickerView 
 numberOfRowsInComponent🙁NSInteger)component{
    return [pickerArray count];
}

#pragma mark- Picker View Delegate

-(void)pickerView🙁UIPickerView *)pickerView didSelectRow:
 (NSInteger)row inComponent🙁NSInteger)component{
    [myTextField setText:[pickerArray objectAtIndex:row]];
}
- (NSString *)pickerView🙁UIPickerView *)pickerView titleForRow:
  (NSInteger)row forComponent🙁NSInteger)component{
    return [pickerArray objectAtIndex:row];
}

Թարմացրեք viewDidLoad-ը ViewController.m-ում հետևյալ կերպ  −

(void)viewDidLoad
{
   [super viewDidLoad];
   [self addPickerView];
}

Արդյունք

Երբ հավելվածում ենք, կտեսնենք հետևյալ արդյունքը −

pickeroutput1pickeroutput2

 

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.