0

2つのコンポーネントを持つピッカーがあります。コンポーネント0(kCardComponent)にNSStringsを表示させたい。コンポーネント1(kSuitComponent)でUIViewが必要です。これが私のピッカービューからのコードです。プログラムがクラッシュします。このメソッドでUIViewを返す必要があるときにNSStringを返すためだと思います。

- (UIView *)pickerView:(UIPickerView *)pickerView
        viewForRow:(NSInteger)row
      forComponent:(NSInteger)component reusingView:(UIView *)view {
if (component == kSuitComponent) {
    UIImage *image = self.suitImages[row];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    return imageView;
}
else
    return (UIView*)self.cardNumber[row];
}

別のピッカービュー-(NSString *)pickerViewを作成しようとしましたが、機能しませんでした。私は何をすべきか?

4

1 に答える 1

1

このデリゲートメソッドから文字列を返すことはできず、ビューのみを返すことができます。1つのコンポーネントのビューが必要なため、すべてのビューが必要です。あなたがする必要があるのは、を作成し、UILabelそのテキストをあなたが持っている文字列に設定することです。

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
    if (component == kSuitComponent) {
        UIImage *image = self.suitImages[row];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        return imageView;
    } else {
        NSString *text = self.cardNumber[row];
        UILabel *label = ... // create label
        label.text = text;
        return label;
    }
}
于 2013-03-14T01:17:31.833 に答える