Ios-ui-elements-picker

提供:Dev Guides
移動先:案内検索

iOS-ピッカー

ピッカーの使用

ピッカーは回転可能なスクロール可能なビューで構成され、アイテムのリストから値を選択するために使用されます。

重要なプロパティ

  • 代表者 *情報源

重要な方法

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

ViewController.hを更新する

テキストフィールド、ピッカービュー、および配列のインスタンスを追加します。* UITextFieldDelegate、UIPickerViewDataSource および *UIPickerViewDelegate プロトコルを採用します。 ViewController.h は次のとおりです-

#import <UIKit/UIKit.h>

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

カスタムメソッド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];
}

次のように ViewController.mviewDidLoad を更新します-

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

出力

アプリケーションを実行すると、次の出力が得られます-

iOSチュートリアル

テキストフィールドを選択すると、選択を選択できる下の図のようにピッカービューが表示されます-

iOSチュートリアル