UIDatePicker 在 iOS9 RTL 上翻转

use*_*992 2 rtf picker uidatepicker ios ios9

在 RTL 上显示 DatePicker - 时间模式时,我遇到了一个奇怪的问题。

我以编程方式显示日期选择器。分钟应该在右边,小时在左边,在下图中你可以看到它被翻转了:

在此处输入图片说明

它发生在 iOS 9 及更高版本上。

我正在使用的代码:

UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height+44, self.view.frame.size.width, 216)];
datePicker.tag = tag;
[datePicker setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
[datePicker setDatePickerMode:UIDatePickerModeTime];
[datePicker setBackgroundColor:[UIColor whiteColor]];
[datePicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:datePicker];
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

小智 5

我通过强制forceRightToLeft每个日期选择器子视图来解决它。

尝试以下操作,它应该可以工作:

override func viewDidLayoutSubviews() {
    for currentView in datePicker.subviews {
        currentView.semanticContentAttribute = .forceRightToLeft
    }
} 
Run Code Online (Sandbox Code Playgroud)