UIDatePicker 高度的设置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kun__kun/article/details/51362889

最近在做项目的时候遇到了一个坑,项目中需要用到DatePicker时间选择器,xcode是7.3的,支持的ios系统是最新的ios9.3,自己的手机也是最新系统,在自测的时候DatePicker在我的View中展示的非常完美,可是我们的测试人员就拿着测试机来找我了...在这里说明一下测试的手机是ios8.3的系统,在测试手机中显示的DatePicker非常大,大到我自己都傻眼了(宝宝心里苦)先来看一下有问题的代码:

_datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(10, 50,_view.frame.size.width-20  , 140)];//初始化时间选择器
    //_datePicker.backgroundColor=[UIColor magentaColor];
    _datePicker.datePickerMode =UIDatePickerModeDate;
    NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
    _datePicker.locale=locale;
    [_view addSubview:_datePicker];

这样写的问题是,你怎么改变frame的大小,它都是固定的,通过搜索一些相关资料我有了以下解决方法:

_datePicker = [[UIDatePicker alloc]init];//初始化时间选择器
    _datePicker.frame = CGRectMake(10, 50,_view.frame.size.width-20  , 140);
    //_datePicker.backgroundColor=[UIColor magentaColor];
    _datePicker.datePickerMode =UIDatePickerModeDate;
    NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
    _datePicker.locale=locale;
    [_view addSubview:_datePicker];

什么嘛,原来就是只把frame和init分开来写了,Of course 接下来就来讲一下什么原因:

当手机系统为iOS9一下的手机,DatePicker的init和frame一起写的话就会出现怎么改变frame,实际显示的效果都是死的,高度都是216,而iOS9以上则不会有影响。那么为了避免这样的问题,当然把DatePicker的init和frame分开来写就一切都解决了。

猜你喜欢

转载自blog.csdn.net/Kun__kun/article/details/51362889
今日推荐