文档章节

UIPickerView 简单使用

Lambda8421
 Lambda8421
发布于 2016/03/27 15:31
字数 306
阅读 22
收藏 0
//实现一个计划设置时间的选择
//上个界面是时间列表的其中一个cell点击进入此页面
//.h文件
#import "MMViewController.h"

@protocol ScheuduleStepTimeSettingDelegate <NSObject>

- (void)stepTimeSettingWithIndexRow:(NSInteger)indexRow hour:(NSString *)hour minute:(NSString *)minute;

@end

@interface ScheduleStepTimeSettingVC : MMViewController

@property (nonatomic, weak) id<ScheuduleStepTimeSettingDelegate> delegate;

@property (nonatomic, assign) NSInteger currentIndexRow;

@end
//.m文件
#import "ScheduleStepTimeSettingVC.h"

@interface ScheduleStepTimeSettingVC () <UIPickerViewDataSource, UIPickerViewDelegate>

@end

@implementation ScheduleStepTimeSettingVC{
    UIPickerView *timePickView;
    
    NSMutableArray *hourDataArr;
    NSMutableArray *minuteDataArr;
    
    NSString *currentHour;
    NSString *currentMinute;
}

- (void)rightBtnDidClick{    //完成按钮
    if ([self.delegate respondsToSelector:@selector(stepTimeSettingWithIndexRow:hour:minute:)]) {
        [self.delegate stepTimeSettingWithIndexRow:self.currentIndexRow hour:currentHour minute:currentMinute];
    }
    [self.navigationController popViewControllerAnimated:YES];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.navigationLabel.text = @"选择时间";
    [self.rightBtn setTitle:@"完成" forState:UIControlStateNormal];

    [self initArr];
    
    timePickView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,0,DEVICE_W, 320)];
    timePickView.delegate = self;
    timePickView.dataSource = self;
    [self.view addSubview:timePickView];
}
- (void)initArr{
    hourDataArr = [[NSMutableArray alloc] init];
    for (int i = 0 ; i < 24; i ++) {
        NSString *str;
        if (i < 10) {
            str = [@"0" stringByAppendingString:[NSString stringWithFormat:@"%d",i]];
        }else{
            str = [NSString stringWithFormat:@"%d",i];
        }
        [hourDataArr addObject:str];
    }
    
    minuteDataArr = [[NSMutableArray alloc] init];
    for (int i = 0 ; i < 60; i ++) {
        NSString *str;
        if (i < 10) {
            str = [@"0" stringByAppendingString:[NSString stringWithFormat:@"%d",i]];
        }else{
            str = [NSString stringWithFormat:@"%d",i];
        }
        [minuteDataArr addObject:str];
    }
}


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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    if (component == 0) {
        return hourDataArr.count;
    }else if(component == 1){
        return minuteDataArr.count;
    }else{
        return 0;
    }
}

-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    if (component == 0) {
        return  [hourDataArr objectAtIndex:row];;
    }else if(component == 1){
        return [minuteDataArr objectAtIndex:row];
    }else{
        return nil;
    }
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
    if (component == 0) {
        currentHour = [hourDataArr objectAtIndex:row];;
    }else if(component == 1){
        currentMinute = [minuteDataArr objectAtIndex:row];
    }
}
@end


© 著作权归作者所有

共有 人打赏支持
Lambda8421
粉丝 10
博文 121
码字总数 121640
作品 0
闸北
程序员
私信 提问
iOS选择器视图控件(UIPickerView)使用方法总结

iOS中UIPickerView使用总结 UIPickerView是iOS中的原生选择器控件,使用方便,用法简单,效果漂亮。 @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; @property(nonat......

珲少
2015/06/10
0
0
疯狂ios讲义之选择器(UIPickerView)

UIPickerView也是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。 UIPickerView直接...

博文视点
2014/01/24
5.6K
1
iOS学习之UIPickerView控件的简单使用

UIPickerView控件在给用户选择某些特定的数据时经常使用到,这里演示一个简单的选择数据,显示在UITextField输入框里,把UIPickerView作为输入View,用Toolbar作为选定数据的按钮。和其他UIT...

知行合一100
2012/06/25
0
0
iOS学习之自定义弹出UIPickerView或UIDatePicker(动画效果)

前面iOS学习之UIPickerView控件的简单使用 用到的UIPickerView弹出来是通过 textField.inputView = selectPicker; textField.inputAccessoryView = doneToolbar; 这中方法来做的。如果UIPic...

知行合一100
2012/08/02
0
0
iOS学习之UIPickerView控件的关联选择

接上篇iOS学习之UIPickerView控件的简单使用 接着上篇的代码 http://download.csdn.net/detail/totogo2010/4391870 ,我们要实现的效果如下: 当选择左边的一级选项时,左边展示一级选项里含...

知行合一100
2012/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0
最近研究如何加速UI界面开发,有点感觉了

最近在开发JFinal学院的JBolt开发平台,后端没啥说的,做各种极简使用的封装,开发者上手直接使用。 JBolt开发平台包含常用的用户、角色、权限、字典、全局配置、缓存、增删改查完整模块、电...

山东-小木
今天
3
0
《月亮与六便士》的读后感作文3000字

《月亮与六便士》的读后感作文3000字: 看完英国作家威廉.萨默塞特.毛姆所著《月亮与六便士》(李继宏译),第一疑问就是全书即没提到“月亮”,也没提到“六便士”。那这书名又与内容有什么...

原创小博客
昨天
2
0
微信网页授权获取用户信息(ThinkPHP5)+ 微信发送客服消息(一)

以thinkphp5为实例,创建控制器 class Kf extends Controller { /** * [protected description]微信公众号appid * @var [type] */ protected $appid = "xxxxxxxxxxxxxxx"; /** * [protected......

半缘修道半缘君丶
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部