带有标识检查器的自定义Xcode选择器

带有标识检查器的自定义Xcode选择器,xcode,ios7,uipicker,Xcode,Ios7,Uipicker,我正在尝试制作一个只包含数字1-10的自定义Xcode UIPicker。有没有简单的方法可以通过身份检查器实现这一点?如果没有,那么制作这个简单的UIPicker的最佳方法是什么 提前谢谢 不,不能仅使用面生成器创建选择器。UIPicker没有与UITableView静态单元格等效的单元格。您需要一个视图控制器,但它没有那么复杂。视图控制器需要实现UIPickerViewDataSource、UIPickerViewDelegate委托。以下是值为1到10的单列选择器的基础知识 #import

我正在尝试制作一个只包含数字1-10的自定义Xcode UIPicker。有没有简单的方法可以通过身份检查器实现这一点?如果没有,那么制作这个简单的UIPicker的最佳方法是什么


提前谢谢

不,不能仅使用面生成器创建选择器。UIPicker没有与UITableView静态单元格等效的单元格。您需要一个视图控制器,但它没有那么复杂。视图控制器需要实现UIPickerViewDataSource、UIPickerViewDelegate委托。以下是值为1到10的单列选择器的基础知识

#import "ViewController.h"

@interface ViewController () <UIPickerViewDataSource, UIPickerViewDelegate>

@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    self.pickerView.delegate   = self;
    self.pickerView.dataSource = self;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - UIPickerView Data Source & Delegate

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return 10;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [NSString stringWithFormat:@"%d", row + 1 ];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    // TODO do something with the selection
}

@end

您好,谢谢您的快速回复。我是Xcode新手,那么我将如何以及在何处实现和添加上述代码?一旦我这样做了,我如何将我的选择器链接到代码本身?再次感谢@GayleDDSHi@user3743364查看我的更新答案以了解完整的操作步骤。干杯。非常感谢@Gayledds非常感谢您的帮助,但是如果我想增加文本的大小,我将如何进行?您需要实现-UIView*pickerView:UIPickerView*pickerView视图ForRow:NSIntegerrow forComponent:NSIntegercomponent reusingView:UIView*视图,并且可能还需要-CGFloatpickerView:UIPickerView*pickerView行高forComponent:NSIntegercomponent而不是pickerView:titleForRow:forComponent:
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    return 60;  // Row height in points, Note this should match the height of the UILabel Rect.
}

// FYI points are not pixels on non retina screens 1 point = 1 pixel but on retina screens 1 point = 2 pixels

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    if (view) {
        UILabel *reuseLabel = (UILabel *)view;
        reuseLabel.text = [NSString stringWithFormat:@"%ld", row + 1 ];
        return reuseLabel;
    }
    
    UILabel *newLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 60)];
    newLabel.text = [NSString stringWithFormat:@"%ld", row + 1 ];
    newLabel.font = [UIFont systemFontOfSize:42];
    newLabel.textAlignment = NSTextAlignmentCenter;
    
    return newLabel;
}