0
2つのコンポーネントUIPickerViewを作成しようとしています。左側にはトランプ(2、3、ジャックなど)の値を保持し、 4つのスーツの画像を保持する。ここでは、関連するコードは次のとおりです。あなたはおそらく見ることができるように、私は左側のコンポーネントと右のコンポーネントに対して別々のピッカーデリゲートメソッドを作成しようとしましたUIPickerView - イメージとしての1つのコンポーネント、テキストとしてのもう1つのコンポーネント
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
if (component == 0)
return [self.values count];
return [self.column1 count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component {
if (component == 0)
return [self.values objectAtIndex:row];
else
return nil;
}
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
if(component == 1){
NSString *arrayName = [[NSString alloc] initWithFormat:@"column1"];
NSArray *array = [self valueForKey:arrayName];
return [array objectAtIndex:row];
}
else
return nil;
}
。しかし、これは私に意図された結果を与えていません。コードは、viewForRowメソッドを実行するだけで、他は無視しているようです。したがって、私は画像で満たされた右のコンポーネントと空の左のコンポーネントで終わる。誰もが両方のコンポーネントを実装する別の方法を知っていますか?
また、コードがちょっと変わっているようです。 'viewForRow:'メソッドでは、あなたが現在持っている3行の代わりに '[self.column1 objectAtIndex:row]'を直接使うことができます。 – calimarkus
良いコールマン。ありがとう。 –