如何格式化iOS 7 UIPickerView以仅显示3个选项?也就是说,一个在主动选择之上,一个在主动选择之下?

如何格式化iOS 7 UIPickerView以仅显示3个选项?也就是说,一个在主动选择之上,一个在主动选择之下?,ios,objective-c,uipickerview,Ios,Objective C,Uipickerview,我想将iOS 7 UIPickerView格式化为只显示三个选项。即所选选项上方和下方各一个。我还想将文本的格式设置为小于默认值。如何实现这一点?实现这些委托方法将为您提供一个包含3行的选择器视图,并允许您自定义字体、颜色等 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; } - (UIView *)pickerView:(UIPicke

我想将iOS 7 UIPickerView格式化为只显示三个选项。即所选选项上方和下方各一个。我还想将文本的格式设置为小于默认值。如何实现这一点?

实现这些委托方法将为您提供一个包含3行的选择器视图,并允许您自定义字体、颜色等

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

    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

        UILabel *pickerRowLabel = (UILabel *)view;

        if (pickerRowLabel == nil) {
            CGRect frame = //YOUR PICKERVIEW FRAME. HEIGHT IS 44 by default.
            pickerRowLabel = [[UILabel alloc] initWithFrame:frame];
           //FORMAT THE FONT FOR THE LABEL AS YOU LIKE
            pickerRowLabel.backgroundColor = [UIColor clearColor];
            pickerRowLabel.userInteractionEnabled = YES;
        }

        pickerRowLabel.text = //YOUR TEXT, MOST LIKELY FROM AN ARRAY ... ?

        return pickerRowLabel;
    }

    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

        return 3; //MOST LIKELY YOUR ARRAY OF OBJECTS COUNT
    }

一种方法是将其放在视图中,使其两端变短并启用剪辑子视图,但我认为必须有更好的方法来实现这一点。您可以在第一次加载时使用:[pickerView selectRow:1不完整:0动画:否]@CW0007007我没弄明白。我不想选择特定的行。我想显示3,而不是默认的5个选择选项,并格式化字体大小。哦,我明白了。你是如何创造它的?您只需加载包含三个对象的数据源即可。-看我的回答实际上数组中的项目多于3个。。。我只想显示3,这样我可以使它的高度更短。i、 每次3个。。。默认情况下,它显示五个。。。在所选行的上方2个,下方2个。通过将其放在视图中,缩短视图并剪裁视图的子视图,我可以将其缩减为3项显示。此外,格式工作如您所述,因此我将此标记为答案。谢谢:)