如何创建自定义UIDatePicker?

德兰·康威(Declan Conway)

我正在为iOS创建一个健康和健身应用程序。作为用户注册的一部分,他们必须输入身高。我要求用户使用日期选择器执行此操作,但是我不确定如何执行此操作。任何人都有任何常规技巧或链接可以指导我正确的方向吗?

干杯!

布莱恩·萨切塔(Brian Sachetta)

就像rmaddy提到的那样,您将需要使用UIPickerViewUIDatePicker仅用于选择日期/时间。这是苹果文档的链接:

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIPickerView_Class/index.html

以下是一些帮助您入门的提示:

1)UIPickerView在的实例上创建type属性UIViewController我称其pickerView为演示目的。

2)pickerView分配init或将其链接到pickerView情节提要/ xib文件上的。

3)确保将的设置为delegatepickerView实例UIViewController

4)确保您的实例UIViewController实现了以下协议:UIPickerViewDataSourceUIPickerViewDelegate通过在您的UIViewController子类的接口声明旁边添加以下代码行

<UIPickerViewDataSource, UIPickerViewDelegate>

5)实际实现的必要方法(以及任何可选)UIPickerViewDataSourceUIPickerViewDelegate通过这种方式,您可以知道pickerView它有多少行和列,以及用什么文本填充所说的行和列。

一些示例代码如下所示:

// MyViewController.h

@interface MyViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>

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

@end

// MyViewController.m

@implementation MyViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.pickerView.delegate = self;
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    // components are like columns. one column for feet and one for inches
    return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    if(component == 0){
        return [[self getUserDetailsHeightFeetOptions]count];
    } else {
        return [[self getUserDetailsHeightInchesOptions]count];
    }
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    if(component == 0){
        return [NSString stringWithFormat:@"%@", [[self getUserDetailsHeightFeetOptions]objectAtIndex:row]];
    } else {
        return [NSString stringWithFormat:@"%@", [[self getUserDetailsHeightInchesOptions]objectAtIndex:row]];
    }
}

- (NSArray*)getUserDetailsHeightFeetOptions{
    NSMutableArray *feetOptions = [[NSMutableArray alloc]init];
    for (int i = 3; i < 8; i++) {
        [feetOptions addObject:[NSNumber numberWithInt:i]];
    }
    return feetOptions;
}

- (NSArray*)getUserDetailsHeightInchesOptions{
    NSMutableArray *inchesOptions = [[NSMutableArray alloc]init];
    for (int i = 0; i < 12; i++) {
        [inchesOptions addObject:[NSNumber numberWithInt:i]];
    }
    return inchesOptions;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SwiftUI:如何创建自定义UIDatePicker

来自分类Dev

如何自定义UIDatePicker组件?

来自分类Dev

如何自定义 UIDatePicker 实现以下输出?

来自分类Dev

如何创建自定义形状-CSS

来自分类Dev

如何创建自己的自定义地图

来自分类Dev

如何创建自定义整理器?

来自分类Dev

如何创建自定义SKAction?

来自分类Dev

Jetty如何创建自定义WebSocket

来自分类Dev

如何创建引用的自定义容器?

来自分类Dev

如何创建自定义的fabricjs对象?

来自分类Dev

如何创建自定义进度

来自分类Dev

如何创建自定义单选按钮?

来自分类Dev

如何创建自定义后退按钮?

来自分类Dev

如何创建自定义虚线

来自分类Dev

如何创建自定义SELinux标签

来自分类Dev

如何创建自定义模式叠加

来自分类Dev

如何创建自定义的“文档属性”?

来自分类Dev

如何创建自定义JTable?

来自分类Dev

如何创建Django自定义查询?

来自分类Dev

如何创建自定义属性类型

来自分类Dev

如何创建自定义[QUOTE]标签?

来自分类Dev

如何创建自定义吐司

来自分类Dev

如何创建自定义字体图标?

来自分类Dev

Android:如何创建自定义的edittext?

来自分类Dev

QT如何创建自定义插槽?

来自分类Dev

如何创建自定义布局

来自分类Dev

Android:如何创建自定义视图

来自分类Dev

SBT如何创建自定义命令

来自分类Dev

如何创建自定义网址