UIDatePicker 高度的設置

最近在做項目的時候遇到了一個坑,項目中需要用到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分開來寫就一切都解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章