Different in Xcode12
- UIDatePicker different style

Usually, we put DatePicker into TextField, everything is good and elegant until you build APP with Xcode 12 IDE, Let’s see what happen to DatePicker behavior in Xcode 12 build APP.

Solution 1: Using the iOS 14 new UIDatePicker UI 🤗
We need to make some modifications for the DatePicker which is set in the TextField input view.
if (@available(iOS 14.0, *)) { [self.rightButton setHidden: NO]; UIButton *dateButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; dateButton.backgroundColor = UIColor.clearColor; [self addSubview:dateButton]; UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; [datePicker setDate: [NSDate date]]; [datePicker setMaximumDate: [NSDate date]]; [datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_TW"]]; [datePicker setDatePickerMode: UIDatePickerModeDate]; [datePicker addTarget:self action:@selector(updateBirthDay:) forControlEvents:UIControlEventValueChanged]; [self addSubview:datePicker];} else { [self.rightButton setHidden: NO]; UIDatePicker *datePicker = [UIDatePicker new]; [datePicker setDate: [NSDate date]]; [datePicker setMaximumDate: [NSDate date]]; [datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_TW"]]; [datePicker setDatePickerMode: UIDatePickerModeDate]; [datePicker addTarget:self action:@selector(updateBirthDay:) forControlEvents:UIControlEventValueChanged]; [self setInputView: datePicker];}

Solution 2 : Using the old wheel UI style 😥
if (@available(iOS 14.0, *)) {UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels;[datePicker setDate: [NSDate date]];[datePicker setMaximumDate: [NSDate date]];[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_TW"]];[datePicker setDatePickerMode: UIDatePickerModeDate];[datePicker addTarget:self action:@selector(updateBirthDay:) forControlEvents:UIControlEventValueChanged];[self setInputView: datePicker];} else {[self.rightButton setHidden: NO];UIDatePicker *datePicker = [UIDatePicker new];[datePicker setDate: [NSDate date]];[datePicker setMaximumDate: [NSDate date]];[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_TW"]];[datePicker setDatePickerMode: UIDatePickerModeDate];[datePicker addTarget:self action:@selector(updateBirthDay:) forControlEvents:UIControlEventValueChanged];[self setInputView: datePicker];}
2. TableView cell element covered by content view
Solution 1: put elements into content view
[self.contentView addSubview: yourUIElementViews];
Solution 2: set content view UserInteractionEnabled to NO
[self.contentView setUserInteractionEnabled:NO];