-1

私は iOS が初めてで、ピッカー UI 要素を UI に動的に追加しようとしています。クラス - UIPickerView では、ピッカーをビューに追加するためのメソッドが表示されません。誰もこれをやろうとしましたか?どうもありがとう。

4

4 に答える 4

0

ビューにピッカーを追加する方法が見当たりません

UIPickerView は UIView のサブクラスであるため、サブビューをビューに追加するために使用するのと同じメソッドを使用します。つまり-addSubview:、次のようになります。

UIPickerView *picker = [[UIPickerView alloc] initWithFrame:theFrame];
picker.delegate = self;
picker.dataSource = self;
[self.view addSubview:picker];

ここでは、ピッカーのデリゲートとデータ ソースの両方として機能するビュー コントローラーにコードがあると想定しています。

于 2013-04-23T05:39:07.580 に答える
0

ピッカーをビューに追加するのと同じように、追加したい UIView -> addSubview メソッド。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,200,320,200,)]];
pickerView.delegate = self;
[self.view addSubview:pickerView];

その機能を実現するために、デリゲートを設定して実装することを忘れないでください。

于 2013-04-23T05:35:08.757 に答える
0

まず、ピッカー ビューにメモリを割り当てます。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 265, 320, 216)];

次に、デリゲートとデータソースを設定します。

pickerView.dataSource=self;
pickerView.delegate=self;

その後、ピッカー ビューをメイン ビューに追加します。

[self.view addSubview:pickerView];

その後、ピッカービューのメソッドを実装する必要があります。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{    
     return [array count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
        return [array objectAtIndex:row];
}

これがうまくいくことを願っています。

于 2013-04-23T05:41:53.113 に答える
0

他と同様に、alloc+initWithFrame が必要です。

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 0, 0)];

次に、それをターゲット ビューに追加します。

[yourView addSubview:pickerView];

また、デリゲートとデータソースを設定する必要があります。これにより、すべての要素がピッカー ビューに表示されます。

pickerView.dataSource=self;
pickerView.delegate=self;

その他のすべてのカスタマイズは次のとおりです。

pickerView.showsSelectionIndicator=YES;

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
  return [array objectAtIndex:row];
}
于 2013-04-23T05:34:41.590 に答える