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