我注意到UIDatePicker的异常行为。
我有一张桌子,当我选择一个单元格时,datePicker会出现。
当我更改选择器内的值时,在iPhone 4s / 5 / 5s(iOS 8)上,“值已更改”操作将按预期触发。
在iPhone 6/6 +上,第一次没有任何事情发生(既不是例外,也不是任何事情)。在第二次更改值后,它可以正常工作。
所以,我的问题很简单......为什么iPhone 6/6 +有这种行为?
这是一个已知的错误还是什么?
谢谢
更新:
我的应用程序自2012年8月开始在商店中使用,并始终正常运行...
这是代码
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
// set the selected HH:mm date
self.pickerView.date = [[self.fetchedResultsController objectAtIndexPath:indexPath] presence];
// check if our date picker is already on screen
if (self.pickerViewView.superview == nil && self.duplicateDatePickerView.superview == nil)
{
[self openDatePickerView:self.pickerViewView withToolbar:self.toolBar];
}
self.selectedPresence = [self.fetchedResultsController objectAtIndexPath:indexPath];
}
- (IBAction)dateAction:(id)sender{
NSIndexPath *indexPath = self.ipForDateAction;
if(!self.selectedPresence)
self.selectedPresence = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSDateComponents *comp = [TimeUtility hoursAndMinutesFromDate:self.pickerView.date];
self.selectedPresence.presence = [TimeUtility date:self.selectedPresence.presence withHour:comp.hour minute:comp.minute];
[self saveContext];
[self timeRemainingForDate];
}
更新2:
这种奇怪的行为只会将选择器的模式设置为“倒数计时器”
答案 0 :(得分:1)
以下是此错误的解决方法。我已经向Apple提交了一个雷达,他们说他们知道这个问题。这个答案是由用户Sergio Silva提供的,他在Apple开发者论坛上回答我:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.myDatePicker setCountDownDuration: xxxxxx];
//or [self.myDatePicker setDate:xxxx animated:NO];
});