agiapp / BRPickerView

BRPickerView 封装的是iOS中常用的选择器组件,主要包括:日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、地址选择器(支持省市区、省市、省三种地区选择)、自定义字符串选择器(支持单列、多列、二级联动、三级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。
https://github.com/agiapp/BRPickerView
MIT License
2.57k stars 446 forks source link

iOS14 适配的问题 #189

Closed baiyidjp closed 4 years ago

baiyidjp commented 4 years ago

手机系统iOS14,PickerView 2.7.2

  1. iOS14系统表现 pickerView的宽度没有占用全屏的宽度,右边有空间。
  2. 怎么设置多语言的环境

谢谢

agiapp commented 4 years ago

1.pickerView的宽度默认为当前 keyWindow 的宽度,为了适配多屏默认获取的不是屏幕的宽度。可以自己使用下面属性:

/** 组件的父视图:可以传 自己获取的 keyWindow,或页面的 view */
@property (nullable, nonatomic, strong) UIView *keyView;

如:datePickerView.keyView = self.view; // 将组件 datePickerView 添加到 self.view 上,默认是添加到 keyWindow 上

2.多语言环境在 BRPickerStyle.h 中有提供如下属性

/**
 *  设置语言(不设置或为nil时,将随系统的语言自动改变)
 *  language: zh-Hans(简体中文)、zh-Hant(繁体中文)、en(英语 )
 */
@property(nullable, nonatomic, copy) NSString *language;
baiyidjp commented 4 years ago

好的 谢谢! 马上试试

baiyidjp commented 4 years ago

如图,中英文可以了。但是右边的空隙还是比左边的大,并没有居中,我也传了当前controller的view给keyView了。

image

image

@91renb

agiapp commented 4 years ago

BRDatePickerModeDate 是 UIDatePicker 系统自带的样式,暂无法自定义控制; 可以设置 pickerMode == BRDatePickerModeYMD,这个是 UIPickerView 封装的样式,提供了很多自定义样式属性

baiyidjp commented 4 years ago

BRDatePickerModeDate 是 UIDatePicker 系统自带的样式,暂无法自定义控制; 可以设置 pickerMode == BRDatePickerModeYMD,这个是 UIPickerView 封装的样式,提供了很多自定义样式属性

好的 设置完可以居中了。谢谢

agiapp commented 4 years ago

多谢你的提醒,刚才测试了一下BRDatePickerModeDate也是可以实现居中。 在iOS14里默认设置 datePicker 的 frame 宽高会不生效。需要先设置 datePickerMode,再设置 frame 才会生效,估计是iOS14的一个小bug。后面我会优化更新一下~

baiyidjp commented 4 years ago

多谢你的提醒,刚才测试了一下BRDatePickerModeDate也是可以实现居中。 在iOS14里默认设置 datePicker 的 frame 宽高会不生效。需要先设置 datePickerMode,再设置 frame 才会生效,估计是iOS14的一个小bug。后面我会优化更新一下~

中文下这个时间: 年的显示有点被切掉了一点 机型是iPhoneX

image

agiapp commented 4 years ago

已适配iOS14显示样式,同iOS14之前版本显示样式一致,不需要额外再设置API,请更新到最新版本进行使用

baiyidjp commented 4 years ago

已经使用最新版本,谢谢