前言
最近在项目中需要实现年月日的输入,由于官方的控件外形不满足要求,于是,我就用两个UIPickerView拼了一个年月日的输入控件。左边的UIPickerView展示年和月,右边的UIPickerView中展示日。根据年和月的滚动来实现动态展示日的信息。
问题
我打算让控件一开始就选中某个日期,我使用了下面的方法。
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
按照我自己的理解,此时应该会去执行代理方法:
- pickerView:didSelectRow:inComponent:
,然而实际运行时发现,代理方法并没有触发,经过google,发现这一问题不只我遇到了,国外的网友也遇到了,按照他们的说法,我们在设置了滚动到的位置后,必须主动调用代理方法。也就是下面这样:
[self.picker selectRow:0 inComponent:0 animated:YES];
[self pickerView:self.picker didSelectRow:0 inComponent:0];