8

UIPickerView は、ピッカー ビュー アイテムに対する NSAttributedString の使用をサポートしなくなったようです。誰でもこれを確認できますか?ファイルで見つけましNS_AVAILABLE_IOS(6_0)たが、これは問題ですか?UIPickerView.hこれを回避する方法はありますか、それとも運が悪いのでしょうか?

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component NS_AVAILABLE_IOS(6_0); // attributed title is favored if both methods are implemented
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
4

3 に答える 3

15

この問題の唯一の解決策はpickerView:viewForRow:forComponent:reusingView:、属性付きの文字列を使用して UILabel を返すことです。

于 2013-09-22T15:27:33.620 に答える
4

リサイクルされたビューを尊重する方法で pickerView:viewForRow:forComponent:reusingView: を使用する例を次に示します。

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UILabel *)recycledLabel {
    UILabel *label = recycledLabel;
    if (!label) { // Make a new label if necessary.
        label = [[UILabel alloc] init];
        label.backgroundColor = [UIColor clearColor];
        label.textAlignment = NSTextAlignmentCenter;
    }
    label.text = [self myPickerTitleForRow:row forComponent:component];
    return label;
}
于 2014-09-02T00:55:51.393 に答える