シナリオ:
UIScrollViewにはUIButtonがあります。UIButtonをタップすると、指定されたrectからUIPopoverControllerが表示されます。UIPopoverControllerのcontentViewControllerは、UIDatePickerを備えたUIViewControllerです。
ボタンがタップされたときに発生するコード(ボタンはカスタムタイプで、タップ内のタッチアップが登録されています):
- (void)showCalendar:(id)sender {
dateViewController = [[UIViewController alloc] init];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 240, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker addTarget:self
action:@selector(DateChanged:)
forControlEvents:UIControlEventValueChanged];
NSLocale *US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSCalendar *cal = [NSCalendar currentCalendar];
[cal setLocale:US];
[datePicker setCalendar:cal];
[datePicker setMaximumDate:[NSDate date]];
dateViewController.view = datePicker;
dateViewController.contentSizeForViewInPopover = CGSizeMake(240, 200);
self.popoverController = [[UIPopoverController alloc]
initWithContentViewController:dateViewController];
self.popoverController.delegate = self;
NSLog(@"YESYESYES");
[self.popoverController presentPopoverFromRect:CGRectMake(753, 513, 1, 1) inView:parentView permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
NSLog(@"NONONO");
}
デバイスをXcodeに接続してアプリを実行すると、2つのNSLogステートメントの間に顕著な1秒以上の遅延があります。そのような遅れの理由は何でしょうか?